我有一个三列的telerik Grid。我只在此处发布列声明以仅关注它:
.Columns(columns =>
{
columns.Bound(s => s.field1).Filterable(false);
columns.Bound(s => s.field2).Filterable(false);
columns.Bound(s => s.BoolField).HeaderTemplate("<label><input id='selectall' class='chkbx' type='checkbox' onclick='ToggleChkBox(this.checked);'>All selected</label>")
.ClientTemplate("<input type='checkbox' class='chkbxq' name='chkEnabled' <#= BoolField ? checked='checked' : '' #> 'text-align:center' onclick='onClickCheckBoxColumn()'/>")
.ReadOnly(false)
.Title("Activa")
.Width(40)
.HtmlAttributes(new { style = "text-align:center" })
.HeaderHtmlAttributes( new { style = "text-align:center" });
})
Javascript函数:
function ToggleChkBox(flag) {
$('.chkbxq').each(function () {
$(this).prop('checked', flag);
});
}
此网格具有一个复选框列。另外,我在列标题中放置了一个复选框。当选中列标题中的此复选框时,我要选中该列中的所有复选框,而未选中它时,则要取消选中该列中的所有复选框。上面的功能ToggleChkBox有效,但仅适用于网格当前页面中的项目,例如,如果网格在第一页中显示项目,则检查/取消折叠第一页中的所有项目,但不检查其他页面中的其余项目被检查/未检查。那么如何从javascript函数中检查/取消选中所有网格页面中的所有项目?
[您似乎正在尝试做Kendo已经内置的支持。您是否尝试过使用column.Select()?
这里是Kendo在网格中的复选框演示:
https://demos.telerik.com/aspnet-mvc/grid/checkbox-selection