我有一个基于身份验证角色的系统:不同的角色被重定向到不同的文件夹,并且在每个文件夹中都有一个 web.config,它只允许访问特定的用户名。
很少有角色具有与 gridview 相同的默认页面,它们根据角色以不同的方式做出反应(显示不同的列,事件触发不同的方法等)。
所以我的问题是,每次我需要对页面进行细微更改时,我都需要将相同的更改复制/粘贴到其他文件夹中的所有其他默认页面。
就代码而言,我通过创建一个扩展 System.Web.UI.Page 的 DefaultFather 类来解决,并且所有其他 Default 类都继承自 DefaultFather。这样,如果我不声明Page-life-method,就会触发DefaultFather方法。
但是图形部分(html、javascript、asp 组件等)呢?
我仅为默认页面创建了一个 NestedMasterPage,但每次我需要更改控件的外观/行为(gridview、按钮、链接按钮)时,我都必须使用 FindControl() 方法。
真的没有另一种方法来解决这个问题吗?我正在考虑使用 Page_Load() 方法通过 FindControl() 搜索每个控件并将它们保存到属性中以供以后使用,但它看起来并不是一个好的解决方案。如果我可以将母版页组件用作属性会很好,但我认为为此我应该创建公共属性,但我不知道它是否会导致某种安全问题。
有什么建议吗?
顺便说一句,如果母版页是解决方案,我应该删除 DefaultFather 类并将代码直接放入母版页吗?还是只为代码设置另一个类是个好主意?