ASP.NET 中的 Telerik Grid 按钮单击时的核心复选框迭代
Telerik Grid in ASP.NET Core Checkbox Iteration on button click
我正在使用 Telerik Grid 作为 ASP.NET 核心控件。
我有一个复选框,我只需要为选中的行遍历网格。
网格是这样定义的(部分):
@(Html.Kendo().Grid<WebPortal.
Controllers.RebateReturnData>()
.Name("gridRebates")
.AutoBind(true)
.Columns(c =>
{
c.Select().Title("Select").Width(60);
c.Bound(e => e.id).Title("ID").Width(150);
c.Bound(e => e.rebateProgram).Title("Program");
上面的'c.Select() 添加了复选框并且有效。
如果我执行以下代码,那么它会按预期显示在控制台中:
function onChange(e) {
var selectedRows = this.select();
var selectedDataItems = [];
for (var i = 0; i < selectedRows.length; i++) {
var dataItem = this.dataItem(selectedRows[i]);
selectedDataItems.push(dataItem);
}
// selectedDataItems contains all selected data items
console.log(selectedDataItems);
}
我有一个测试按钮设置来调用测试函数:
<kendo-button name="getSelected" type="button" onclick="checkSelected()">test selection</kendo-button>
我在其中放置了各种代码,但绝对没有什么好结果。
如果我只是将上面的代码放入其中,那么 'this.select()' 将不起作用。
我最近的尝试:
function checkSelected() {
var data = $("#gridRebates").data("kendoGrid").dataSource.data();
var foundChecked = 0;
$.each(data,
function (i, row) {
var checkNumber = row.isChecked;
console.log(checkNumber);
if (checkNumber != null) {
foundChecked++;
}
});
alert("checked count: " + foundChecked);
}
这会迭代行,但总是 returns 计数为 0。
原来是相当直接的(就像大多数事情一样,一旦你知道答案)。
Telerik 支持帮助我解决了这个问题:
function getSelectedData() {
var grid = $("#grid").data("kendoGrid");
var selectedRows = grid.select();
selectedRows.each(function (e) {
var dataItem = grid.dataItem(this);
console.log(dataItem);
})
}
我正在使用 Telerik Grid 作为 ASP.NET 核心控件。 我有一个复选框,我只需要为选中的行遍历网格。
网格是这样定义的(部分):
@(Html.Kendo().Grid<WebPortal.
Controllers.RebateReturnData>()
.Name("gridRebates")
.AutoBind(true)
.Columns(c =>
{
c.Select().Title("Select").Width(60);
c.Bound(e => e.id).Title("ID").Width(150);
c.Bound(e => e.rebateProgram).Title("Program");
上面的'c.Select() 添加了复选框并且有效。 如果我执行以下代码,那么它会按预期显示在控制台中:
function onChange(e) {
var selectedRows = this.select();
var selectedDataItems = [];
for (var i = 0; i < selectedRows.length; i++) {
var dataItem = this.dataItem(selectedRows[i]);
selectedDataItems.push(dataItem);
}
// selectedDataItems contains all selected data items
console.log(selectedDataItems);
}
我有一个测试按钮设置来调用测试函数:
<kendo-button name="getSelected" type="button" onclick="checkSelected()">test selection</kendo-button>
我在其中放置了各种代码,但绝对没有什么好结果。 如果我只是将上面的代码放入其中,那么 'this.select()' 将不起作用。 我最近的尝试:
function checkSelected() {
var data = $("#gridRebates").data("kendoGrid").dataSource.data();
var foundChecked = 0;
$.each(data,
function (i, row) {
var checkNumber = row.isChecked;
console.log(checkNumber);
if (checkNumber != null) {
foundChecked++;
}
});
alert("checked count: " + foundChecked);
}
这会迭代行,但总是 returns 计数为 0。
原来是相当直接的(就像大多数事情一样,一旦你知道答案)。 Telerik 支持帮助我解决了这个问题:
function getSelectedData() {
var grid = $("#grid").data("kendoGrid");
var selectedRows = grid.select();
selectedRows.each(function (e) {
var dataItem = grid.dataItem(this);
console.log(dataItem);
})
}