2013-10-22 100 views
13

我在我的asp.net MVC web應用程序中實現了jqgrid。如何動態地隱藏jqgrid列

在我的網格中,我有兩列編輯和刪除。只有當用戶以管理員身份登錄時,刪除纔可見。

我們該如何在jqgrid中動態地隱藏列。我有一個會話變量來檢查登錄用戶是否是管理員。

我在JavaScript中訪問該變量。但是,我不知道如何可以隱藏的jqGrid

請幫幫忙/顯示列...

回答

12

這一個工作:

$("#list").hideCol("ColumnName") 
17

使用此代碼,

jQuery("#list").jqGrid('hideCol',["colModel1_name","colModel2_name"]); 
jQuery("#list").jqGrid('showCol',["colModel1_name","colModel2_name"]); 

願這幫助你。

+0

@ Vinoth..what是colmodel1和colmodel2? –

+0

兩者都是您的colmodel定義中的名稱,它們是您要隱藏的列。 –

+0

如果我需要在添加表單對話框中隱藏colModel,該怎麼辦?我在beforeShowForm中嘗試過,但它沒有工作, – jstuardo

2

這不是用JS來管理安全性的最佳實踐。您不應該在服務器端顯示此列!

+0

我從服務器端根據會話信息調用javascipt。所以,我想我是從服務器端本身。我認爲jqgrid純粹是jquery插件。我認爲有沒有其他的方式來做到這一點,而不是使用jquery .. –

+0

我同意@Suwer - 我使用服務器以編程方式寫出列模型。如果用戶沒有權限,那麼刪除列永遠不會寫出到他們的瀏覽器中。它不是'隱藏'的地方,他們可能會發現它在視圖源..它根本不* – bkwdesign

8

較新的API

jQuery("#list").jqGrid('hideCol',["ColumnName","ColumnName2"]); 

舊API

$("#list").hideCol("ColumnName")