如果Session是一般用户则将GridView模板列中的一个文本框改为ReadOnly=true,如果是管理员则改为false,我只知道可以用foreach循环所有行进行更改,请问怎样才能便捷的更改?
说明:我是手工绑定数据源的,代码如下:    protected void bind()
    {
        GridView1.DataSource=DBMaster.getDS("select …………");
        GridView1.AutoGenerateColumns = false;
        GridView1.DataBind();
        if (Convert.ToInt32(Session["userClass"].ToString()) == 1)//如果是一般用户改文本框(txtContent)为只读
        {
       //请问怎么写?
        }
    }
我不知道IF的判断要放在什么地方,上面的只是随便放的。谢谢!

解决方案 »

  1.   

    foreach (GridViewRow dr in GridView1.Rows)
    {
    if (dr.RowType == DataControlRowType.DataRow)
    {
    //找到这个ROW里的TEXTBOX,然后设置
    }
    }
      

  2.   

    这个可以放在RowDataBound事件里面
    根据Session值设置是否只读
    大概这么写
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TextBox txt = e.Row.FindControl("TextBox的ID") as TextBox;
        if ( Session..... )
        {
            //设置TextBox属性
        }    
    }
    }