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

时间:2011-05-10 18:20:00

标签: 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

});

当我查看复选框并选中复选框时,行颜色显示已选中...但如果我返回并只是单击该行(不在复选框上)该行颜色显示未选中但复选框保持选中状态。 如果我运行代码以查看此时是否确实检查过。他们不是。但是我回过头来检查行取消选中的复选框,虽然复选框显示了一个检查。但是如果我运行代码来查看它,网格会认为没有选择行。非常非常奇怪。 如何使点击行无效,或确保它们确实取消选中复选框。 我希望这是有道理的。 谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

我发现了这个问题,只是想把它放在这里给其他人。

我强迫它使用jquery 1.4.4

   <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js" type="text/javascript"></script>

而不是获取最新版本

这解决了我上面遇到的问题。