初始化后如何将函数附加到 kendo 网格?
How do I attach function to kendo grid after it initialized?
我有一个 Kendo 网格和 JavaScript 函数“getFilters”。 “getFilters”函数是在文档中定义的作用域函数。目前网格正在调用“getFilters”,如下所示。但这不起作用,因为“getFilters”在网格初始化后被初始化。所以我收到错误
0x800a1391 - JavaScript 运行时错误:'getFilters' 未定义
我不想让“getFilters”函数成为全局函数。
那么如何在初始化网格后将“getFilters”附加到数据源?我想在 Document Ready
中这样做
@(Html.Kendo().Grid<MyModel>()
.Name("Grid")
col.Bound(p => p.State).Title("State");
col.Bound(p => p.BatchStatus).Title("Status");
})
.AutoBind(false)
.Pageable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("GetData", "MyController")
.Data("getFilters"))
.ServerOperation(false))
)
JavaScript 文档准备功能
$(function () {
function getFilters() {
return SomeJSON;
}
var ds = $("#Grid").data("kendoGrid").dataSource;
//How do i attach getFilters function to dataSource here?
})
您应该从准备好的文档中移出函数 getFilters
并将其放在网格初始化部分上方或下方的脚本标记中
<script>
function getFilters() {
return SomeJSON;
}
</script>
@(Html.Kendo().Grid<MyModel>()
.Name("Grid")
col.Bound(p => p.State).Title("State");
col.Bound(p => p.BatchStatus).Title("Status");
})
.AutoBind(false)
.Pageable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("GetData", "MyController")
.Data("getFilters"))
.ServerOperation(false))
)
请 refer here 在 SO
中提出类似问题
我找到了答案,这可能对其他人有帮助。在这里你可以如何在文档中附加函数 ready
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.data = getFilters;
然后调用 read() 重新加载网格。每次调用 read() 时,都会执行附加函数 "getFilters"。
grid.dataSource.read();
我有一个 Kendo 网格和 JavaScript 函数“getFilters”。 “getFilters”函数是在文档中定义的作用域函数。目前网格正在调用“getFilters”,如下所示。但这不起作用,因为“getFilters”在网格初始化后被初始化。所以我收到错误 0x800a1391 - JavaScript 运行时错误:'getFilters' 未定义
我不想让“getFilters”函数成为全局函数。 那么如何在初始化网格后将“getFilters”附加到数据源?我想在 Document Ready
中这样做@(Html.Kendo().Grid<MyModel>()
.Name("Grid")
col.Bound(p => p.State).Title("State");
col.Bound(p => p.BatchStatus).Title("Status");
})
.AutoBind(false)
.Pageable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("GetData", "MyController")
.Data("getFilters"))
.ServerOperation(false))
)
JavaScript 文档准备功能
$(function () {
function getFilters() {
return SomeJSON;
}
var ds = $("#Grid").data("kendoGrid").dataSource;
//How do i attach getFilters function to dataSource here?
})
您应该从准备好的文档中移出函数 getFilters
并将其放在网格初始化部分上方或下方的脚本标记中
<script>
function getFilters() {
return SomeJSON;
}
</script>
@(Html.Kendo().Grid<MyModel>()
.Name("Grid")
col.Bound(p => p.State).Title("State");
col.Bound(p => p.BatchStatus).Title("Status");
})
.AutoBind(false)
.Pageable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("GetData", "MyController")
.Data("getFilters"))
.ServerOperation(false))
)
请 refer here 在 SO
中提出类似问题我找到了答案,这可能对其他人有帮助。在这里你可以如何在文档中附加函数 ready
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.data = getFilters;
然后调用 read() 重新加载网格。每次调用 read() 时,都会执行附加函数 "getFilters"。
grid.dataSource.read();