<asp:ButtonField CommandName="Modify" HeaderText="修改" Text="修改" >
                        <ItemStyle Width="35px" />
  </asp:ButtonField>
==============================================
我这个buttonbufield,点这个修改会跳到一个页面去修改内容
我想通过用户的权限判断如果是非管理员这个 修改 就灰掉 ,不能点?
怎么实现啊?

解决方案 »

  1.   

    用模板列,buttonfield列不好做,模板列可定义性高,想怎么着都行
    例如在GridView的RowDataBound事件中protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       Button btn = (Button)e.Row.FindControl("ModifyButtonID");
       if(btn!=null)
       {
           if(!管理员)
               btn.Enabled = false;
       }
    }
      

  2.   

    用模板列
    <ItemTemplate HeaderText= "修改" >
              <asp:Button ID="btnModify" Text= "修改" runat="server" Enable='<%# Convert.ToBoolean(Eval("IsAdmin")) %>' />
    </ItemTemplate>
      

  3.   

    <ItemTemplate   HeaderText=   "修改 "   > 
                        <asp:Button   ID= "btnModify "   Text=   "修改 "   runat= "server "   Enable= ' <%#   Convert.ToBoolean(Eval( "IsAdmin "))   %> '   /> 
    </ItemTemplate> IsAdmin 在数据库中必须是bit类型
      

  4.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    try
    {
       Button btn = (Button)e.Row.FindControl("ModifyButtonID");
       if(btn!=null)
       {
           if(!管理员)
               btn.Enabled = false;
       }
    }
    catch
    {}
    }
    或者把第一行去掉 第一行是表头 找不到Button 会出错
      

  5.   

    用模板列
    <ItemTemplate HeaderText="修改 ">
       <asp:Button ID="btnModify " Text= "修改 " runat="server " Enable='<%#   Convert.ToBoolean(Eval( "IsAdmin ")) %> '/>
    </ItemTemplate>
      

  6.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       Button btn = (Button)e.Row.FindControl("ModifyButtonID");
       if(btn!=null)
       {
           if(!管理员)
               btn.Enabled = false;
       }
    }很正确吗!!可以按照他的错法去做完全OK的!