2017-08-22 39 views
2

的jqGrid默認的按鈕,使添加,編輯和刪除隱藏在使用帶有值設置爲false相應的屬性按鈕。 (例如:導航網格中的{add:false,edit:false,del:false}或其他方式)。禁用編輯(添加,編輯和刪除)的jqGrid,而不是隱藏(默認行爲)

在這裏,我想禁用這些按鈕,而不是隱藏。任何人都可以提供幫助。我的意思是說,想要將隱藏的默認功能更改爲禁用。

在此先感謝。

回答

1

The old answer描述瞭如何實現你需要的行爲。

首先,這是非常重要的,你知道導航欄的所有按鈕,你需要禁用的IDS。 ID建築的規則可能會略有不同取決於版本jqGrid的,你使用的(可以使用),並從jqGrid的的叉(free jqGrid,商業Guriddo jqGrid JS或舊的jqGrid版本< = 4.7)。我開發free jqGrid,如果您沒有任何特殊限制,我建議您使用它。頂部和底部尋呼機的ID不同(請參閱jqGrid的pagertoppager選項)。您可以使用開發人員工具來檢查您需要禁用的按鈕的ID。

瞭解這一點很重要,你應該行的​​每一個選擇/取消更新導航按鈕的狀態(禁用/啓用)。因此您應該使用beforeSelectRow回調或jqGridBeforeSelectRow事件。要在使用jQuery UI CSS的情況下禁用按鈕,您應該將CSS類ui-state-disabledui-jqgrid-disablePointerEvents添加到按鈕並啓用,您應該刪除這些類。如果您使用Bootstrap CSS而不是jQuery UI CSS,那麼您應該使用"disabled ui-jqgrid-disablePointerEvents"而不是"ui-state-disabled ui-jqgrid-disablePointerEvents"。類ui-jqgrid-disablePointerEvents定義在免費jqGrid的ui.jqgrid.cssui.jqgrid.min.css)中。如果你不使用免費的jqGrid,那麼你應該通過以下方式進行定義:

.ui-jqgrid-disablePointerEvents { 
    pointer-events: none; 
} 

(見ui.jqgrid.css代碼the lines)。如果您想要支持大多數不同設備上的所有Web瀏覽器(請參閱here),則使用pointer-events: none非常重要。

+0

感謝您的答覆,我在這裏看着窗外僅用於添加,編輯和刪除按鈕(jqGrid的默認編輯按鈕)。正如將{refresh:true,edit:false,add:false,del:false,search:true}傳遞給navGrid,它將使這三個按鈕不可見/隱藏。在這裏,我希望它們可見但處於禁用模式。 – santoshM

+0

@santoshM:不客氣!請仔細閱讀我的答案。瞭解您使用的jqGrid版本以及jqGrid的哪個版本非常重要。您使用哪個尋呼機('toppager'或'pager'或兩者)?你是否[舊的回答](https://stackoverflow.com/a/5376355/315935)[試用版](http://www.ok-soft-gmbh.com/jqGrid/EdableDisableEditDelNavigatorButtons.htm),我參考了哪些?應始終啓用「添加」按鈕,但只有在選擇某行並且該行可編輯時才應啓用編輯和刪除。 – Oleg

+0

使用我的修復程序,如果我將{refresh:true,edit:false,add:false,del:false,search:true}傳遞給navGrid,則應禁用並隱藏按鈕。 – santoshM

0

當您通過{添加:假的,德爾:假}與navButtonAdd(),添加和刪除按鈕不是在所有添加到網格中。要首先禁用它們,我們需要通過不傳遞虛假值來添加和刪除它們來添加它們。添加它們後,我們可以禁用它們,添加類'ui-state-disabled'。

1
  • 如果你想顯示它,但處於禁用狀態,那麼你應該使用。
$("#edit_pays_grid").addClass('ui-state-disabled'); 

Fiddle Demo link

  • 或者,您也可以使用下面的代碼,這將沒有添加按鈕到電網。

。navGrid( '#pays_grid_pager',{編輯:假的,加:假的,德爾:假的, 搜索:假的,刷新:真})

Fiddle Demo link

相關問題