2008-09-18 33 views
1

我一直在做微調我們網站的UI該控件的onload事件如下:什麼是修剪ASP.NET網站GUI的好方法?

btnDelete.isVisible = user.IsInRole("can delete"); 

,因爲有這麼多的控​​制,以一次又一次的檢查這已經變得非常乏味。一旦我得到它所有的工作,設計師就要求改變UI,然後從頭開始。

有什麼建議嗎?

回答

3

一個簡單的建議是羣控制到基於訪問權限

2

東西我以前做過一直是創建一個自定義的頁面類面板(其實,我做每一個項目這一部分),每個ASP。 NET頁面繼承。

此頁面類包含一個IsAdmin屬性。

然後,我將通常使用的控件子類化,這些控件可能會或可能不會在模式之間顯示到自定義控件中,並添加代碼以檢查Pages IsAdmin屬性。

所有這些工作可能需要一個小時,但如果您使用這些控件構建頁面,他們會自動管理其模式。

另一個有趣的節省時間的提示是,如果您需要翻頁進出只讀模式。我向主基類添加了一個屬性,然後添加了一個自定義控件,用於在一種模式下呈現文本框,並在另一種模式下呈現標籤。

再次,在組件上花點時間,但是您可以在兩行代碼中創建頁面的只讀版本......非常值得。

2

您可能會以錯誤的方式思考這種情況。不要考慮個人控制,而應考慮業務角色和他們有能力做什麼。這與分組控制一起進入訪問權限的面板。例如,也許只有經理纔有能力刪除和做其他事情,並且您對經理的角色有檢查。這樣,如果有變化,您可以將用戶轉移到不同的角色。業務規則不應該有很大的改變。隨着新職位獲得更多責任,總會進行調整,但以這種方式考慮應該儘量減少所做更改的次數。

1

一個快速和骯髒的選項是使用asp:loginview控件,它可以連接到用戶角色。

不像Jonathan建議的自定義頁面類選項那麼優雅,並且如果他們遍佈頁面,可能會造成一些性能問題。

相關問題