javascript - jqWidget CheckBox 在网格捕获复选框变化

标签 javascript jquery jquery-plugins jqxgrid

我有一个 jqxGrid,里面有几个复选框。 我需要做的是找到一个在更改复选框时触发的事件。 我试过:

  • 已更改
  • cellbeginedit
  • cellendedit
  • cellvaluechanged
  • cellvaluechanging

. 一切都无济于事。

我不想在更改任何单元格时触发和事件,只是这个复选框。

关于如何实现这一点有什么想法吗?
我已经包含了下面的代码。
复选框是'Re-Cert'行

$("#ModulesGrid").jqxGrid({
        width: 890,
        height: 350,
        theme: modulesTheme,
        columnsresize: true,
        source: dataAdapter,
        pageable: true,
        editable: true,
        columns: [
                  { text: 'Module Name', datafield: 'modulename', width: 100, editable: false },
                  { text: 'Optional', datafield: 'Optional', columntype: 'checkbox', width: 100 },
                  { text: 'Assigned', datafield: 'Assigned', width: 80 , columntype: 'checkbox'},
                  { text: 'Pass', datafield: 'pass',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'NC', datafield: 'nc',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'Fail', datafield: 'fail',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'Re-Cert', datafield: 'recert', columntype: 'checkbox', width: 50, cellvaluechanged: function(event){alert(1);}},
                  { text: 'Re-Cert Reason', datafield: 'reason', width: 100, editable: false},
                  { text: 'Prior Cert', datafield: 'priorcert', width: 50, editable: false }
              ]
    });

这是 API 的链接:http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxgrid/jquery-grid-api.htm

编辑:它不会让我在 jqWidget 下标记它,因为该标记不存在并且我没有 1500 代表。抱歉,这让您感到困惑。

最佳答案

我在使用这个插件时遇到了类似的问题。

因此,我尝试使用复选框图像并将事件分配给图像来将点击事件分配给元素,而不是内置事件。

我还注意到您没有绑定(bind) cellbeginedit 或 cellendedit 事件..

$("#ModulesGrid").bind('cellbeginedit', function (event) {
     var args = event.args;
  alert("Column: " + args.datafield + ",
           Row: " + (1 + args.rowindex) + ", Value: " + args.value);
});

然后从定义中删除事件并像上面那样绑定(bind)它

{ text: 'Re-Cert', datafield: 'recert', columntype: 'checkbox', width: 50 },

更新

如果是这种情况,您可以处理该特定列的 cellsrenderer 方法。

var columncheckboxRenderer = function(row, column, value) {
    var html;
        html = '<span style="margin:4px;float:left" onclick="clickImage(this,'
                + row + ')"><img alt="selectme" class="image-unchecked" '  
                +  src="../../Images/checkbox_off.png"/></span>';

    return html;
}

{ text: 'Re-Cert', datafield: 'recert',  width: 50,
          cellsrenderer: columncheckboxRenderer, renderer: header},

然后为复选框编写click 事件...这应该完成...的工作。这就是我处理我的需求逻辑的方式。

关于javascript - jqWidget CheckBox 在网格捕获复选框变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811165/

相关文章:

javascript - 这条线是什么意思? jQuery Hilghlight 插件中的 "this.parentNode.firstChild.nodeName"

ajax - jQuery日历时间轴插件

jquery Datatables - 如何实现服务器端获取和客户端排序

php - 使用 JavaScript 仅允许文本框值介于 1 到 11 之间

javascript - 数组如何与关系运算符(如小于和大于)交互?

jquery - JSF + jQuery : how to achieve StackOverFlow collapsible comment box

jquery - 如何在悬停时临时更改 z-index?

javascript - 如何在无限滚动页面中显示四个以上的adsense单元?

javascript - 使用 jQuery 访问 Google map PHP 中的数据

Jquery 选择同时具有 Class1 和 Class2 的所有元素