如何获取 MVC Kendo 详细信息网格的实例
How to get the instance of a MVC Kendo details grid
我不明白的是我应该如何获取详细信息网格的实例。
我有一个充满数据的网格。展开这些行会显示另一个子网格。在某些时候,我需要向这个子网格添加行,而不是从后端读取它。我需要严格保持它的前端。
我可以从主网格中获取任何行的实例,但是如何获取详细信息网格的实例以对其进行更改?
Kendo 使用 jQuery 的 data
函数在小部件绑定到的 html 元素上保存小部件实例。初始化小部件实例后可通过调用 htmlElement.data("kendoWidgetName");
在您的情况下,假设 masterRow
指向任何主网格行,我将编写以下代码:
var nextRow = masterRow.next(); //Get detail row for current master item
if(!nextRow.is(".k-detail-row") || !nextRow.is(":visible")) {
alert("Details are not loaded yet or are not expanded");
} else { //Details are expanded
//Get details grid instance
var detailsGrid = nextRow.children(".k-detail-cell:first")
.children(".k-grid:first").data("kendoGrid");
detailsGrid.addRow();
}
查看 fiddle:http://dojo.telerik.com/ikigo
希望对您有所帮助。
更新 - 带有外部按钮的示例:
在这种情况下,您可以使用 select()
方法实现选定的主行:
var masterRow = $("#grid").data("kendoGrid").select();
然后像第一个示例一样找到详细信息网格。
这是一个带有外部按钮的 fiddle:http://dojo.telerik.com/ikigo/2
我不明白的是我应该如何获取详细信息网格的实例。 我有一个充满数据的网格。展开这些行会显示另一个子网格。在某些时候,我需要向这个子网格添加行,而不是从后端读取它。我需要严格保持它的前端。
我可以从主网格中获取任何行的实例,但是如何获取详细信息网格的实例以对其进行更改?
Kendo 使用 jQuery 的 data
函数在小部件绑定到的 html 元素上保存小部件实例。初始化小部件实例后可通过调用 htmlElement.data("kendoWidgetName");
在您的情况下,假设 masterRow
指向任何主网格行,我将编写以下代码:
var nextRow = masterRow.next(); //Get detail row for current master item
if(!nextRow.is(".k-detail-row") || !nextRow.is(":visible")) {
alert("Details are not loaded yet or are not expanded");
} else { //Details are expanded
//Get details grid instance
var detailsGrid = nextRow.children(".k-detail-cell:first")
.children(".k-grid:first").data("kendoGrid");
detailsGrid.addRow();
}
查看 fiddle:http://dojo.telerik.com/ikigo
希望对您有所帮助。
更新 - 带有外部按钮的示例:
在这种情况下,您可以使用 select()
方法实现选定的主行:
var masterRow = $("#grid").data("kendoGrid").select();
然后像第一个示例一样找到详细信息网格。
这是一个带有外部按钮的 fiddle:http://dojo.telerik.com/ikigo/2