我有一個基於身份驗證角色的系統:不同的角色被重定向到不同的文件夾,每個文件夾中都有一個web.config,它只允許訪問特定的用戶名。使用MasterPage屬性作爲屬性擴展ASP.NET頁面
很少有角色具有與GridView相同的默認頁面,它們根據角色(顯示不同的列,事件觸發不同的方法等)以不同的方式作出反應。
所以我的問題是,每次我需要對頁面進行微小更改時,我需要將相同的更改複製/粘貼到其他文件夾中的所有其他默認頁面。
就我通過創建一個DefaultFather類來解決的代碼而言,該類擴展了System.Web.UI.Page,並且每個Default類都從DefaultFather繼承。這樣,如果我不聲明一個Page生活方法,DefaultFather方法將被觸發。
但是圖形部分(html,javascript,asp組件等)呢?
我爲Default頁面創建了一個NestedMasterPage,但每次我需要更改控件(gridview,buttons,linkbuttons)的外觀/行爲時,我必須使用FindControl()方法。
還沒有真正的另一種方法來解決這個問題? 我想使用Page_Load()方法使用FindControl()搜索每個控件,並將它們保存到屬性中供以後使用,但它看起來確實不是一個好的解決方案。 這將是很好,如果我可以使用masterpage組件作爲屬性,但我認爲爲了做到這一點,我應該創建公共屬性,我不知道它是否會導致某種安全問題。
有什麼建議嗎?
順便說一句,如果masterpage是解決方案,我應該刪除DefaultFather類,並將代碼直接放入主頁面?或者爲代碼創建另一個類是否是一個好主意?
有趣的是,事件呢?我如何迴應示例的OnClick事件? – Simone 2013-04-10 21:24:02
請參閱我的編輯示例。 – 2013-04-10 21:40:53
我不能只聲明:private SiteMaster master;並在默認類的Page_Init()中初始化它?對我來說,使用新的東西可能會導致問題,這似乎更容易。還有最後一件事,如果我可以......那麼現在我有一個主文件和一個基本的DefaultFather類,以及其他一些擴展了DefaultFather的默認類。如果我問一個關於如何處理基於不同的default.aspx應該採取不同行爲的OnClick()事件的例子,這是否太多了? – Simone 2013-04-10 21:53:30