【发布时间】:2018-08-14 09:15:48
【问题描述】:
我的 MVC Web 应用程序中有一个带有 checkbox 选项的 Kendo Grid。我正在尝试设置一些在databind 上触发的初始选择。这是我的网格代码:
@(Html.Kendo().Grid<MyProject.ViewModels.MyViewModel>()
.Name("MyGrid")
.Columns(columns => {
columns.Select().Width(50);
columns.Bound(c => c.Id);
columns.Bound(c => c.Name).Title("Name")
})
.Pageable()
.Sortable()
.Events(ev => ev.DataBound("onChange"))
.PersistSelection()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("GetData", "Test"))
))
您会注意到,在events 参数下,我设置了一个在DataBound 上触发的函数,称为onChange。这个函数是我要进行初始选择的地方。我开始编写一个函数来实现这一点,Telerik 提供了一些代码:
function onChange(e) {
//Sample array
var arr = [206, 210];
for (var i = 0; i < e.sender.items().length; i++) {
//206 is a test value, I want to pass an array in.
if (e.sender.dataItem(e.sender.items()[i]).Id == 206) {
e.sender.select(e.sender.items()[i]);
}
}
}
这段代码只带了我一部分。我想做的和需要帮助的地方是,调整此代码以接受一组 Id 并选择这些项目。出于测试目的,我制作了一个名为arr 的非常基本的数组,但我不确定如何将它传递到循环中。
我尝试使用 jquery each 循环来迭代数组中的每个值并选择行,但它不起作用。代码类似于:
function onChange(e) {
//Sample array
var arr = [206, 210];
$.each(arr, function(i, v) {
if (e.sender.dataItem(e.sender.items()[i]).Id == v) {
e.sender.select(e.sender.items()[i]);
}
})
}
感谢任何帮助。
【问题讨论】:
-
您能否详细说明您想要对这些数组 id 做什么?
-
正如我在上面的问题中所说,这些 ID 将用于选择网格中的项目。
标签: javascript jquery asp.net-mvc kendo-ui