前台代码类似这样
<div class="Menu" id= "newdiv" runat="server" ><img src="Images/News.gif" alt=""/ >&nbsp;新闻信息管理</div>
        <div class="MenuNote" style="display:block;" id="newsDiv" runat="server">
            <img src="images/menu_topline.gif" alt="新闻信息管理" />
            <ul class="MenuUL">
                <li><a href="M_NewsList.aspx" target="main">综合新闻列表</a></li>
                <li><a href="M_EditNewsInfo.aspx" target="main">添加综合新闻</a></li>
                <li><a href="M_ProductList.aspx" target="main">图片新闻列表</a></li>
                <li><a href="M_EditPictInfo.aspx" target="main">添加图片新闻</a></li>
            </ul>
        </div>
       <div class="Menu"><img src="Images/News.gif" alt="邮政业务管理"/>&nbsp;邮政业务管理</div>
        <div class="MenuNote" style="display:none;"  id="postDiv" runat="server">
            <img src="images/menu_topline.gif" alt="" />
            <ul class="MenuUL">
                <li><a href="M_PsMailAd.aspx" target="main">邮政函件管理</a></li>
                <li><a href="M_PsStempct.aspx"  target="main">集邮业务管理</a></li>
                <li><a href="M_PsEcomercelist.aspx"  target="main">电子商务管理</a></li>
                <li><a href="M_NewsPapers.aspx"  target="main">报刊发行管理</a></li>
                <li><a href="M_PsFinacial.aspx"  target="main">金融业务管理</a></li>
              <!--  <li><a href="M_PsExpressList.aspx"  target="main">物流速递管理</a></li>  -->
               <li><a href="M_EditPostService.aspx" target="main">其他业务管理</a></li>
            </ul>
        </div>
      <div class="Menu"><img src="Images/News.gif" alt=""/>&nbsp;客户服务管理</div>
        <div class="MenuNote" style="display:none;" id="clientDiv" runat="server">
            <img src="images/menu_topline.gif" alt="" />
            <ul class="MenuUL">
               <li><a href="M_EditClientService.aspx" target="main">编辑业务信息</a></li>
               <li><a href="M_EditAgents.aspx" target="main">邮政网点编辑</a></li>
            </ul>
        </div>
       <div class="Menu"><img src="Images/LookMes.gif" alt=""/>&nbsp;其他信息管理</div>
        <div class="MenuNote" style="display:none;"  id="otherDiv" runat="server">
            <img src="images/menu_topline.gif" alt="" />
            <ul class="MenuUL">
               <li><a href="M_FileList.aspx" target="main">业务学习</a></li>
               <li><a href="M_EditUserFiles.aspx" target="main">添加业务信息</a></li>
               <li><a href="M_WebLinkInfo.aspx" target="main">友情链接</a></li>
               <li><a href="M_EditWebLink.aspx" target="main">添加友情链接</a></li>
            </ul>
        </div>
       <div class="Menu"><img src="Images/user.png" alt=""/>&nbsp;系统信息管理</div>
        <div class="MenuNote" style="display:none;" id="sysDiv"  runat="server">
            <img src="images/menu_topline.gif" alt="" />
            <ul class="MenuUL">
             <li><a href="M_SysLogList.aspx" target="main">系统日志</a></li>
             <li><a href="M_UpdatePassWord.aspx" target="main">修改密码</a></li>
             <li><a href="M_UsersList.aspx" target="main">用户管理列表</a></li>
              <li><a href="M_EditUsersInfo.aspx" target="main">添加用户</a></li>
            </ul>现在我就是不知道,怎么根据管理员的勾选,实现给不同用户不同的功能(C#后台代码)

解决方案 »

  1.   

    菜单URL绑定权限,是否显示菜单,查看对比权限值,有就显示
      

  2.   

    比如说“报刊发行管理”管理是一个授权,这是已经写入的一个授权信息。你现在需要声明用户xxxx拥有这个授权,那么首先使用一个Repeater绑定相关的用户,里边的模板中则是“单个用户授权”控件,类似于模板中写<uc1:单个用户授权 runat="server" id="us1" userId='<%# Eval("userId") %> ' />。同时独立开发一个“单个用户授权”用户控件,增加一个userId属性,例如public string userId
    {
       get{ return (string)ViewState["uid"];}
       set{ ViewState["uid"]=value;}
    }
    然后在这个用户控件中使用一个DataList,绑定所有的授权(列表),比如说一个5行10列的表中每一个单元格中都有一个授权和一个CheckBox,这个CheckBox的值绑定这表达式例如<asp:CheckBox runat="server" id="chk" Checked='<%# IsChecked((string)Eval("授权名称"),this.userId) %>' />然后再在这个用户控件中增加一个Button按钮用户遍历DataList中的CheckBox来更新数据库,或者是在其接口上暴露一个Save方法让其宿主Repeater在用户统一保存数据时可以调用。你的这个用户控件可以单独放在一个测试aspx上测试和开发,所以关键是定义好架构与接口,然后这个repeater与这个用户控件就可以分别交给两个人去开发了。
      

  3.   

    当然有人写出很笨拙的界面,不过也能凑合使用。例如他首先用GridView绑定用户列表,然后再其中一列“设置授权权限”按钮被按下后弹出一个新的窗口,通过url参数传递userId,这个窗口上是此用户的权限DataList绑定界面。这种界面虽然在页面上跳来跳去地非常难用,但是也不失为一种比较清楚的设计。只不过程序员觉得好用(程序员往往把自己省事作为用户好用的标准),而用户觉得不好用罢了。
      

  4.   

    界面不错!分享一下我的处理方法。
    我有一个表A,存储所有页面的文件名(首先在做项目的时候我就把后台的所有文件名都控制不一样)
    同时还有一个表存储管理员b,及其对应的文件名。在每一个页面中都放入ascx控件,在控件中判断当前管理员是否含有当前页面的管理权限,
    如果没有则跳转。所以每次在添加新页面的时候,务必将页面的文件名加到表A中
    同时添加管理员的时候,也需要操作更改他的管理权限。
    如图: