Pai*_*aiS 6 datagrid extjs hyperlink
请问有人可以说明如何在ExtJS中的特定列的单元格中渲染超链接?我已经尝试将列绑定到我的JS中的render函数,然后从中发回html:
<a href="ControllerName/viewName">SELECT</a>
Run Code Online (Sandbox Code Playgroud)
但是,有了这个问题,一旦我通过链接点击控制器,导航就会成功,但是后续导航到数据网格只显示空记录.
通过Spring MVC控制器成功从DB获取记录,我已经检查过了.
请注意,只有在我使用extJS网格中的行超链接导航离开网格时才会发生这种情况.如果我来到网格,并导航到其他地方并再次返回到网格,数据显示正常.只有在使用在一个/任何单元格中呈现的超链接导航离开网格时,才会出现此问题.
谢谢你的帮助!
And*_*eKR 15
这适用于ExtJS 4和5.
使用渲染器使内容看起来像一个链接:
renderer: function (value) {
return '<a href="#">'+value+'</a>';
}
Run Code Online (Sandbox Code Playgroud)
然后使用未记录的动态生成的View事件cellclick
来处理点击:
viewConfig: {
listeners: {
cellclick: function (view, cell, cellIndex, record, row, rowIndex, e) {
var linkClicked = (e.target.tagName == 'A');
var clickedDataIndex =
view.panel.headerCt.getHeaderAtIndex(cellIndex).dataIndex;
if (linkClicked && clickedDataIndex == '...') {
alert(record.get('id'));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个渲染器,因此看起来就像您正在单击它一样。
aRenderer: function (val, metaData, record, rowIndex, colIndex, store){
// Using CellClick to invoke
return "<a>View</a>";
},
Run Code Online (Sandbox Code Playgroud)
但我使用单元格事件来管理点击。
cellclick: {
fn: function (o, idx, column, e) {
if (column == 1) // Doesn't prevent the user from moving the column
{
var store = o.getStore();
var record = store.getAt(idx);
// Do work
}
}
}
Run Code Online (Sandbox Code Playgroud)