2011-09-28 42 views
0

我有一個jqgrid,我有一個自定義的格式化程序,它根據我的需要格式化並顯示鏈接。這確實工作正常,但我有一個問題。我想有條件地顯示鏈接。我怎樣才能做到這一點?如何有條件地在jqgrid中顯示鏈接?

例如,如果此人是管理員,那麼向他顯示所有鏈接,如編輯,刪除等(這些鏈接映射到控制器中的操作方法)。但是,如果此人是NonAdmin用戶,則只顯示查看鏈接並隱藏所有其他鏈接。

我只需要一個如何實現這一目標的一般策略。其中一個策略是將一個布爾字段添加到我的json數據中,這將表示是否顯示編輯,刪除等鏈接。然後在我的格式化程序中,我可以查看行數據並決定是否返回show鏈接。

有沒有更好的方法來做到這一點?

回答

1

您對來自服務器的JSON響應中的其他數據的建議聽起來確定。有一點很重要,那就是你應該以任何方式阻止非管理員的數據編輯。隱藏或不創建編輯鏈接不是安全功能,但主要是改進GUI以防止不允許的操作。如果你在實現時遇到了一些技術問題,你應該在你的問題中包含相應的代碼。

如果您另外使用表格編輯,那麼或the answeranother demothe another answer也可能對您有所幫助。

+0

謝謝奧列格。我知道隱藏鏈接只是GUI改進。服務器端安全性完全是另一回事。我可以通過使用[Authorize(Roles =「Admin」)]或類似的東西來做到這一點。 – TCM

+0

@Anthony:不客氣!例如''Authorize(Roles =「Admin」)]'的用法就是你可以在ASP.NET MVC動作中很好地使用的東西。你只應該定製用戶在低權限情況下的消息。以便用戶清楚地瞭解失敗的原因。 – Oleg

+0

這是我不明白。我如何定製消息?實際上,如果用戶不是Admin,它會引發用戶登錄url。我正在使用表單身份驗證。沒有任何可用於該屬性的選項來顯示ErrorMessage。也許我可以擴展屬性並設置TempData [「Message」],然後在登錄頁面上顯示該消息。只是一個想法!如果你知道答案,你可以發佈它,如果你想讓我創建一個新問題,讓我知道,因爲這與問題沒有直接關係。 – TCM