Реализация гиперссылки в сетке данных додзё

Я впервые работаю с сетями данных, поэтому, пожалуйста, прости все, что неясно.

У меня есть текст JSON, который внедряется в сетку данных dojo (dojox.grid.DataGrid).

  var jsonStore = new dojo.data.ItemFileWriteStore({ url: "xAgent.xsp"});
  var layout = [
    {cells:[ [ 
      {field:'firstname', name:'First'}, 
      {field:'lastname', name:'Last'},
      {field:'policy', name:'Policy'},
      {field:'lastaccessed', name:'Last Accessed'}
      ] ], noscroll:false
    }
  ];

  grid = new dojox.grid.DataGrid({
    store: jsonStore,
    structure: layout,
    rowsPerPage: 50,
    autoHeight: 50
  }, '#{id:gridNode}');
grid.startup();

Сама сетка создана отлично и все данные отображаются по желанию, но я бы хотел, чтобы одно из полей (конкретное поле 'policy') связывалось с другой страницей. Мне нужно включить информацию в поле "политика", когда я перенаправляю, поскольку номер политики будет использоваться на следующей странице.

Другими словами, я хочу, чтобы все поля политики в моей таблице имели собственную уникальную внешнюю ссылку, которая будет содержать номер политики из этого соответствующего поля. Самым простым способом, который я могу придумать, является изменение переменной макета, которая передается в параметр структуры DataGrid, но может быть более простой способ. Если у кого-то есть идеи, я был бы очень признателен.

Заранее спасибо.

1 ответ

Решение

Вы можете использовать форматтер для создания ссылок, кнопок Dojo и т. Д. Внутри сетки.

Formatter - это вызываемая функция JavaScript, которая возвращает значение, отображаемое в ячейке. Значение из хранилища данных передается в качестве параметра функции. Возвращаемое значение, которое вставляется в страницу, может быть любым допустимым HTML или даже виджетом dijit.

Так что в вашем случае добавьте форматер в столбец политики

{field:'policy', name:'Policy', formatter: createLink},

Затем определите функцию с необходимой внешней ссылкой. Например:

function createLink(data){
    return ("<a href=policyinfo.jsp?policy="+data+">"+data+"</a>");
}

Ссылка: http://dojotoolkit.org/reference-guide/1.10/dojox/grid/DataGrid.html

Другие вопросы по тегам