Реализация гиперссылки в сетке данных додзё
Я впервые работаю с сетями данных, поэтому, пожалуйста, прости все, что неясно.
У меня есть текст 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