簡體   English   中英

僅當未在jQgrid中單擊復選框時才清除先前的選擇嗎?

[英]Clear previous selection only if checkbox is not clicked in jQgrid?

我有一個帶有multiselect: true的網格設置multiselect: true因為我需要能夠同時刪除多個行。 onSelectRow事件上,我正在基於ID加載一些數據並將其顯示給最終用戶。 到現在為止還挺好。

這是一切正常的示例,正​​在顯示ID=219109的數據:

在此處輸入圖片說明

現在看下面的例子:

在此處輸入圖片說明

在上面的示例中,第一行仍突出顯示,然后單擊第二行。 由於啟用了multiselect因此我能夠同時選擇兩者。 onSelectRow事件仍然可以正常工作,這意味着正在加載ID=282006的數據,但從視覺上看,這可能會使最終用戶感到困惑。

我想做的是重置先前選擇的行,然后僅突出顯示我單擊的最后一行。

例如,使用相同的圖像:

  • 加載未選擇任何行的新網格
  • 點擊ID=219109 :突出顯示並選擇此行
  • 單擊ID=282006 :清除網格並突出顯示此行

但是,僅當我單擊復選框以外的任何其他位置時,才應該發生這種情況。

在此處輸入圖片說明

在上圖中,如果我單擊任何列而不是第一列(具有復選框的列),我應該能夠清除網格選擇並選擇最后一個列,但是如果我單擊該復選框,則沒有關系,因為唯一一次刪除多個的方法。

我嘗試了以下方法:

onSelectRow: function () {
    var rowid = $(this).jqGrid('getGridParam', 'selrow');

    $(this).jqGrid("resetSelection");
    $(this).jqGrid("setSelection", rowid);
}

但由於行為不一致,因此無法正常工作。 您可以在此處查看演示。

關於如何實現這一目標的任何想法?

在我看來,您只需要添加選項

multiboxonly: true

並刪除當前的onSelectRow代碼。 參見https://jsfiddle.net/OlegKi/949pLpfv/3/ 如果用戶多次單擊復選框,則將選擇行。 單擊該行的另一部分將取消選擇所有先前選擇的行,並僅選擇單擊的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM