我需要在kendoGrid中选择一个特定的行,但不要选择data-uid(因为当再次加载网格dataSource时会更改data-uid),而是选择行itemID。我看到了帖子,但是他们只选择uid的行,这不是我需要的,我实际上需要重新启动HTML5应用程序,当加载网格时,应该选择一个特定的项目。这就是我一直看到的
演示:jsfiddle.net/rusev/qvKRk/3 /
e.g。对象有OrderID as ID
,每次加载网格时都会一样,与uid
不同,我想知道如何选择OrderID
行,而不是uid
。
答案 0 :(得分:23)
我猜你会混合行itemID和data.uid。
var grid = $("#Grid").data("kendoGrid");
var dataItem = $("#Grid").data("kendoGrid").dataSource.get(itemID);
var row = $("#Grid").data("kendoGrid").tbody.find("tr[data-uid='" + dataItem.uid + "']");
答案 1 :(得分:2)
与umais提到的一样,更好的方法,因为目前还没有内置的功能,将遍历所有记录以找到您需要的记录。即使有数据页,我构建的功能也能正常工作。我能想到的另一种方法是做一个辅助ajax调用;但这很有效。请注意,我没有使用超过2000条记录进行测试。
var dataGrid = $("#GATIPS").data("kendoGrid").dataSource;
var numOfRows = dataGrid.total();
var currentPageSize = dataGrid.pageSize();
dataGrid.pageSize(numOfRows);
var dataGridData = dataGrid.data();
for (var i = 0; i < numOfRows; i++) {
if (dataGridData[i].uid == e)
return dataGridData[i];
}
dataGrid.pageSize(currentPageSize); // reset the view
是UID。然而,这可以替代你需要的变量,只需更换支票即可。
答案 2 :(得分:0)
我设法完成的工作是遍历所有行并检查哪个行模型具有等于参数的ID,然后获取该行data-uid并通过data-uid选择项目。它对我来说很好,因为没有任何建议,现在是更好的答案。
答案 3 :(得分:0)
好吧,根据我所做的(和为我工作的),即使解决方法不是最漂亮的,还是用模型ID和ClientTemplate再设置一列,然后创建任何html对象( (在我的情况下)它的ID为它的html id,因此,无论何时需要它,您都只需要去看一下:
grid.dataItem($("td div#id").closest("tr"));
由于请记住dataItem方法正在等待选择器,因此您将selectedItem作为常规选择器。
编辑: 我忘了说,您应该(或可以)使用样式属性
display:none
如果您不想显示该列。