现在我们的系统中绝大部分页面都含有 【查询】、【增加】、【修改】、【删除】 4 个按钮,然后在权限里面控制它们的 Visible 属性,现在的方案是每个页面通过权限来控制它们。--显然这里可以改进:
  1、在基类里面获取权限,然后通过 FindControl 的方式来控制子类页面的按钮 Visible 属性,但这样显然不是太好。
  2、把这 4 个按钮做成一个组合控件,然后在组合控件中把权限控制写进去。
  3、在页面基类中写这4个控件,然后在判断;
--
  以上是我现在的想法,不知道合适不,或者大家还有更好的意见吗?

解决方案 »

  1.   

    1.既然它们4个常在一起,就封装为一个WebControl,暴露一个属性传入权限对象,然后根据权限对象自动设置Visible。2.把这个WebControl放在BasePage或者MasterPage(如果你可以用ASP.NET 2.0,最好用MasterPage),然后在BasePage/MasterPage暴露一个属性,直接将上面说的WebControl的权限属性暴露出去。3.在普通Page中,通过base或者this.MasterPage或者BasePage/MasterPage然后把权限对象传递过去。有必要的话(例如不允许默认权限),可以在BasePage/MasterPage的PreRender中检查是否有显式获取到权限对象,如果没有就抛出Exception。