jqGrid multiselect behavior when pressing special key

冷暖自知 提交于 2019-11-27 09:08:40

jqGrid has several selection strategy, all using multiselect:true. To demonstrate there I created three example:

  1. If you define only multiselect:true: http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm. This is standard behavior which you not like.
  2. If you define additionally multiboxonly:true: http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect3.htm. It seems to me that this behavior is what you need.
  3. If you define additionally multikey:"ctrlKey": http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect4.htm. In the case the row will be selected or deselected only if Ctrl are pressed.

If I understand your question correctly you should define both multiselect:true and multiboxonly:true to receive the behavior which you like.

If I misunderstood your question and you meaned something other please describe this in other words based on on of the above examples.

I just came across the same question wanting to somehow mimic a behaviour like this: - Single-select on clicking a jqGrid's row - Multi-select when key-clicking a row (like CTRL + click)

My solution uses jqGrid's "beforeSelectRow" event whoch passes the click event to it's handler. The handler differentiates between plain and "keyed" click. A keyed click is pass through, a plain click first eliminates a previous selection, than allows the event to bubble through.

function(rowid,e) {

    if (e.ctrlKey==true) {
        return true;//CTRL clicked-->multi select
    } else {
        $('#CoolGrid').jqGrid('resetSelection');//Reset existing select
        return true;//Pass through new item selection
    }
}

Of course you may want to shorten this is a bit, but that way it seemed to be more clear, I think.

You don't need neither multikey nor multiboxonly option for this. Multiselect option has to be set to true, of course.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!