【发布时间】:2014-08-15 10:14:40
【问题描述】:
如何将 gridName 传递给 Kendo 事件处理程序。 .Events(events => events.RequestEnd("requestEndEvent").
我正在使用 Kendo UI 版本 2014.2.716。
【问题讨论】:
标签: kendo-ui kendo-grid kendo-asp.net-mvc
如何将 gridName 传递给 Kendo 事件处理程序。 .Events(events => events.RequestEnd("requestEndEvent").
我正在使用 Kendo UI 版本 2014.2.716。
【问题讨论】:
标签: kendo-ui kendo-grid kendo-asp.net-mvc
最近我更新了 Kendo UI,e.sender.options.table.context.id 停止工作。我联系了剑道,这是他们的回复。以下方法可用于将网格名称传递给任何事件处理程序,包括错误处理程序。
“您所依赖的东西没有记录且不受支持。将 Grid id 传递给 DataSource 事件处理程序的正确方法如下:”
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("Orders_Read", "Grid"))
.Events(e => e.RequestStart("requestStartHandler(\"grid\")"))
)
<script>
function requestStartHandler(gridName) {
return function (e) {
var grid = $("#" + gridName).data("kendoGrid");
alert("Request Start for grid: " + gridName + ", items length: " + grid.items().length);
}
}
</script>
【讨论】:
requestStartHandler(\"grid\") 中的grid 更改为您的网格名称
我知道这是旧的,但是对于现在发现它的任何人来说,发送网格的 id 都可以通过 e.sender.element[0].id 访问
在以前的版本中,e.sender.element.context.id 也可以,但在最新版本(2018+)中,.context 现在是未定义的。元素仍然存在,因此 .element[0].id 应该会继续工作。
function requestEndEvent(e) {
alert(e.sender.element[0].id);
}
【讨论】:
试试这个代码
function GridRequestEnd(e) {
var gridName = null;
$(".k-grid").each(function () {
var currentGrid = $(this).data("kendoGrid");
if (currentGrid != null && currentGrid.dataSource == e.sender) {
gridName = currentGrid.element.context.id;
}
});
alert(gridName);
}
【讨论】: