按下特殊键时jqGrid的多选行为按下特殊键时jqGrid的多选行为(jqGrid multisel

2019-05-12 03:12发布

我是从一个多选的行为预期的表现一样正常,只要没有特殊的按键。 我的意思是,如果你有一个行选择点击另一个与按下没有其他关键,那么就应该选择新的,并取消旧行。 那么,jqGrid的标准选项可以让你总是经常的行为,或者总是多选之间进行选择。 你不能多选只有当按下一个特殊的键。

有没有一种方法,我可以做到这一点?

Answer 1:

jqGrid的有几个选择策略,全部采用multiselect:true 。 为了证明我有创建了三个例子:

  1. 如果只定义multiselect:true : http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm 。 这是你不喜欢的标准行为。
  2. 如果定义还multiboxonly:true : http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect3.htm 。 在我看来,这种行为是你所需要的。
  3. 如果定义还multikey:"ctrlKey" : http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect4.htm 。 在这种情况下,行将被选择或者只在按下Ctrl键取消选择。

如果我理解你的问题正确,您应该定义两个multiselect:truemultiboxonly:true得到你喜欢的行为。

如果我误解你的问题,你meaned其他的东西请基于上述例子换句话说形容这个。



Answer 2:

我只是碰到想以某种方式模仿这样的行为同样的问题: - 在点击的jqGrid的列单选择 - 当键单击一个行(如CTRL +点击)多选

我的解决方案使用的jqGrid的“beforeSelectRow”事件whoch通过单击事件给它的处理程序。 平原和“密钥”之间的区分处理点击。 有密钥咔嗒穿过,一个普通的点击第一消除了先前的选择,不是通过允许事件起泡。

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
    }
}

当然,你可能要缩短这一点,但这种方式似乎更清楚,我想。

你不需要也不多键也不multiboxonly选项这一点。 多选选项被设置为true,当然。



文章来源: jqGrid multiselect behavior when pressing special key