大家好,我是asp.net、mvc和telerik控件方面的新手。当我点击行时如何获得o.Id的值?
<%= Html.Telerik().Grid(Model)
.Name("RolesGrid")
.DataKeys(keys => keys.Add(o => o.Id))
.Selectable()
.Columns(columns =>
{
columns.Bound(o => o.Name);
columns.Bound(o => o.Description);
})
.Pageable()
.ClientEvents(events => events
.OnRowSelect("onRowSelect"))
%>在js代码中:
function onRowSelect(e) {
var ordersGrid = $('#RolesGrid').data('tGrid');
var row = e.row;
var dataItem = ordersGrid.dataItem(row);
alert(dataItem);
}但是dataItem为空,并且在生成的html文件中没有id值。感谢并为我糟糕的英语道歉
发布于 2011-06-17 15:53:57
所以毕竟我有最好的方法来获取id:
var jQuery('#MyGridId').data('tGrid').dataItem(e.row);=var dataItem (dataItem‘’Id‘);
dataItem是一种具有格网模型所有属性的地图,因此您可以获得所需的所有
就这些了,谢谢
发布于 2011-02-09 23:20:41
来自telerik grid demo。
您必须将Id作为隐藏列放在telerik网格中。
// ...
.DataKeys(keys => keys.Add(o => o.Id))
.Selectable()
.Columns(columns =>
{
columns.Bound(o => o.Id).Hidden();
columns.Bound(o => o.Name);
columns.Bound(o => o.Description);
})
// ...
.ClientEvents(events => events.OnRowSelect("onRowSelect"))它将呈现一个
<td style="display: none; ...">...</td>然后你就会得到这样的结果:
function onRowSelect(e) {
var id = e.row.cells[0].innerHTML;
// ...
}备注:
.DataKeys(...)方法。发布于 2015-06-24 23:48:15
我发现了一种更优雅的方法,借鉴了mmutilva的答案。
首先,以相同的方式放入隐藏列和更改事件:
.DataKeys(keys => keys.Add(o => o.Id))
.Selectable()
.Columns(columns =>
{
columns.Bound(o => o.Id).Hidden();
columns.Bound(o => o.Name);
columns.Bound(o => o.Description);
})
.ClientEvents(events => events.OnRowSelect("onRowSelect"))但是在javascript函数中,有一种更好的方法来实际选择对象,然后选择隐藏的行:
function onRowSelect(e) {
var grid = e.sender;
var currentitem = grid.dataItem(this.select());
var Id = currentitem.Id;
//then do whatever with the ID variable
}Source
https://stackoverflow.com/questions/4409012
复制相似问题