jquery - 单击行时 JQGrid MultiSelect 复选框不会取消选中

标签 jquery jqgrid

我有以下 JQGrid

   $("#proposalsTable").jqGrid({
    url: url,
    datatype: 'json',
    mtype: 'GET',
    altRows: false,
    colNames: ['Model', 'Model Year', 'Cabinet', 'Shell', 'Customer', 'Designed By', 'Date'],
    colModel: [

            { name: 'Model', index: 'Model', align: 'left' },
            { name: 'ModelYear', index: 'ModelYear', align: 'left' },
            { name: 'CabinetColor', index: 'CabinetColor', align: 'left' },
            { name: 'ShellColor', index: 'ShellColor', align: 'left' },
            { name: 'CustomerName', index: 'CustomerName', align: 'left' },
            { name: 'DesignedBy', index: 'DesignedBy', align: 'left' },
            { name: 'ProposalDate', index: 'ProposalDate', align: 'left' },

            ],
    pager: jQuery("#proposalsPager"),
    rowNum: 50,
    rowList: [50, 75, 100],
    sortname: 'ProposalDate',
    sortorder: "desc",
    viewrecords: true,
    height: '700px',
    multiselect: true,
    autowidth: true,
    shrinkToFit: true

});

当我浏览并选中复选框时,复选框被选中,并且行颜色显示它已被选中...但是如果我返回并单击该行(而不是复选框)该行颜色显示未选中,但复选框保持选中状态。 如果我运行代码来查看此时是否确实进行了检查。他们不是。但如果我返回并选中复选框,行就会被取消选择,尽管复选框显示为选中状态。但是,如果我运行代码来查看它,网格会认为这些行未被选中。非常非常非常奇怪。 我怎样才能使单击行不执行任何操作,或者确保它们实际上取消选中复选框。 我希望这是有道理的。 谢谢!

最佳答案

我的方法是在选项中实现一个函数来覆盖 onSelectRow 事件。这需要一个 rowId 和一个状态参数。

从那里,您可以根据 rowId 操作该行。

参见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events有关可用事件以及如何覆盖它们的更多信息。注意:如果您覆盖并返回 false,则默认事件处理程序不会触发。

关于jquery - 单击行时 JQGrid MultiSelect 复选框不会取消选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954559/

相关文章:

javascript - JQGrid 默认搜索对话框,输入字段宽度

jquery - 如何在jqgrid中的操作按钮之前添加按钮

jquery - 如何按 jQuery 数据表中的值查找特定行?

javascript - 为什么文本在我的样式中闪烁?

javascript - 单击使页面向下移动到 Bootstrap Accordion 面板主体的底部

javascript - 在外部 Javascript 中使用 JQGrid 的表

jquery - jqgrid嵌套子网格第四级子网格总是返回子网格的第一个rowid

jquery - JQGrid 列自定义..在运行时添加列

javascript - 为什么我无法获得对 AngularJS Videogular 中可以看到的元素的引用?

jquery - Fancybox 规则冲突