【问题标题】:How to stop the onSelectAll event in a jqgrid?如何在 jqgrid 中停止 onSelectAll 事件?
【发布时间】:2016-07-26 08:47:12
【问题描述】:

在用户单击“全选”复选框之前,我需要知道在 jqgrid 中是否选中了一个复选框。我已经在 onSelectAll 事件中检查了它,但此时所有的复选框都已被选中:(因此错过了信息。

onSelectAll: function(aRowids, status) {       
     $("input[id^='jqg_'].cbox:checked").each(function() {
        //All are selecteds now :( 
        console.log("no success!");
});

我知道我可以通过一个 javascript 数组来控制选中的复选框并将 ID 放入每个 'onSelectRow' 事件中,但我试图避免这种解决方法。

我尝试在“全选”复选框中绑定点击事件,但在“点击”事件之前触发了“onSelectAll”事件:(

     $("#cb_list1").bind({
        click: function() {
        console.log("hello");},
     });

所以“你好”出现在“不成功”之后,并且“不成功”出现在我的 jqgrid 的行数中(无论在单击“全选”复选框之前已经选择了多少行)。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: javascript jquery checkbox jqgrid


    【解决方案1】:

    您可以编写 onSelectAllBefore 函数并在 onSelectAll 之前调用它。

    onSelectAll: function(aRowids, status) {  
        onSelectAllBefore(aRowids, status, function() {
            $("input[id^='jqg_'].cbox:checked").each(function() {
            //All are selecteds now :( 
            console.log("no success!");
        });
    });
    
    function onSelectAllBefore(aRowids, status, callback) {
        console.log("hello");
        callback(aRowids, status);
    }
    

    【讨论】:

    • @Ivan 你在控制台中看到“没有成功!”之前的“你好”吗?
    • yes... 这有效,但由于在两个函数(onSelectAllBefore 和 onSelectAll)中我的问题没有解决,当我尝试获取选定的复选框时,我得到相同的结果:所有这些 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2016-05-03
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多