我自己写了一个后台权限管理,可以为不同用户设定不同的权限,比如有些人只能浏览,有些人能修改
我在类PublicA里面弄了一个PermissionsDetermine函数,可以return到True或False的结果,通过以下语句
public PublicA PD = new PublicA();
Response.Write(PD.PermissionsDetermine(2));
已经看见页面上得到True或False
也可以通过if (PD.PermissionsDetermine(1))之类的语句进行判断但是我在前台aspx页面中碰到一个问题
比如有一个添加按钮
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text=" 添加 " Enabled="<%=PD.PermissionsDetermine(2)%>" />
页面出错,说
无法从其“Enabled”属性的字符串表示形式“<%=PD.PermissionsDetermine(2)%>”创建“System.Boolean”类型的对象
同样,在<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="操作"/>中,我想直接去替换引号里的True也会相同的错误。
求教!

解决方案 »

  1.   

    Page_Load的时候Button1. Enabled=PD.PermissionsDetermine(2)
    这样不就行了?Enabled=" <%=PD.PermissionsDetermine(2)%>" /> 这种写法是不对的!编译的时候
    Enabled属性就要确定下来(或者用变量表示,后台cs代码!)。 <%= 这是asp写法,
    解释执行! 不能混用的!  直接输出到页面True、False字符串这样写还行!
      

  2.   

    Page_Load中写Button1.Enabled我试过的,是可以实现
    但是不知道怎么写<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="操作"/>这个里面的东西,比如怎么不让编辑和删除?
      

  3.   

    在CS里设置可见性
    Button1.Visible=PD.PermissionsDetermine(2);if (e.Row.RowType == DataControlRowType.DataRow)
    {
       e.Row.FindControl("lab").Visible = false;
    }
      

  4.   

    对不起,问题还没得到解决
    假设一个用户可以编辑数据,但不能删除。
    如何在CS里为下面这句话做出限定?
    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="操作"/>
      

  5.   

    if (e.Row.RowType == DataControlRowType.DataRow) 

      e.Row.FindControl("按钮的ID").Visible = false; 

      

  6.   


    你不使用asp:CommandField,使用模板列,放删除、编辑、添加等几个按钮,分别设置ID就是了。
    或者,你浏览aspx页面,鼠标右键查看HTML源代码,看看asp:CommandField对应生成的HTML代码是什么样子。
      

  7.   

    <a href="javascript:__doPostBack('GridView1','Edit$0')" style="color:Black;">编辑</a>&nbsp;<a href="javascript:__doPostBack('GridView1','Delete$0')" style="color:Black;">删除</a>
      

  8.   

    能有什么简单的办法解决我的问题嘛?我只是在现有的一大堆程序上加上权限判断的功能,如果要把以前写的asp:CommandField都改掉,工作量有点大
    有人帮忙嘛?