Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道网格:选中标题中的所有复选框在.read()之后停止工作_Javascript_Jquery_Kendo Grid - Fatal编程技术网

Javascript 剑道网格:选中标题中的所有复选框在.read()之后停止工作

Javascript 剑道网格:选中标题中的所有复选框在.read()之后停止工作,javascript,jquery,kendo-grid,Javascript,Jquery,Kendo Grid,我有两个剑道网格,在使用特定的搜索过滤器后显示。最终用户能够调整搜索过滤器并重新加载数据源。我通过检查网格是否存在以及是否已经存在来实现这一点——执行grid.read()操作(而不是重新加载整个网格) 此检查和加载按预期工作。通过单击行选择每一行,或通过选中复选框(或使用单击/拖动方法)选择多行的功能(在read()之前和之后)正常工作。但是,在读取()之后,“全选”复选框(位于标题中)将停止正常工作 我已经编辑并将代码添加到fiddle中,很抱歉它不可运行(我无法删除足够的数据源信息以仅显示

我有两个剑道网格,在使用特定的搜索过滤器后显示。最终用户能够调整搜索过滤器并重新加载数据源。我通过检查网格是否存在以及是否已经存在来实现这一点——执行grid.read()操作(而不是重新加载整个网格)

此检查和加载按预期工作。通过单击行选择每一行,或通过选中复选框(或使用单击/拖动方法)选择多行的功能(在read()之前和之后)正常工作。但是,在读取()之后,“全选”复选框(位于标题中)将停止正常工作

我已经编辑并将代码添加到fiddle中,很抱歉它不可运行(我无法删除足够的数据源信息以仅显示网格)

“全选”复选框适用于网格的初始加载。我试图将.change事件也添加到调用read()的else语句中,认为它可能没有捕获更改事件,但这没有帮助

$('#selectAllCheckbox').change(function () {
            onSelectAll();
        })
在read()之后,当选中“全选”复选框时,单击该复选框本身不显示复选标记,并且不选中表上的多行

function onSelectAll() {
var checked = ($('#selectAllCheckbox')[0].checked)
$('.checkbox').each(function (idx, item) {
    if (checked) {
        if (!($(item).closest('tr').is('.k-state-selected'))) {
            $(item).click();
        }
    } else {
        if ($(item).closest('tr').is('.k-state-selected')) {
            $(item).click();

        }
    }
});
setIsChecked();
};
编辑:

我能够更好地复制我的问题,从剑道的演示开始,然后添加代码的每个部分,直到它崩溃。我能够确定,当尝试将“全选标题复选框”功能与“多选”功能(具有数据绑定事件)组合时,会出现问题。我需要这两个功能一起工作

请参见示例:

请注意,标题复选框工作正常,直到启用网格的某个功能(例如列排序),它才会停止“检查”。每隔单击一次该功能,它就会工作

这就好像“检查”标题复选框的功能正在打开和关闭。

$('selectAllCheckbox')。在('click',function(){
if($(this).prop('checked')==true){
$('.checkbox').prop('checked',true);
}否则{
$('.checkbox').prop('checked',false);
}
});

全部检查

  • 复选框[1]
  • 复选框[2]
  • 复选框[3]
  • 复选框[4]