ASP.NET 设置GridView中的某一列无法编辑

1.设置一个ViewState["EditFlag"]
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
            ViewState["EditFlag"] = "-1";
    }
2.在GridView的RowEditing事件中获取点击的行号
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        ViewState["EditFlag"] = e.NewEditIndex.ToString();
    }
3.在GridView的PreRender事件中找TextBox,并设置ReadOnly为true
    protected void GridView1_PreRender(object sender, EventArgs e)
    {
        if (ViewState["EditFlag"].ToString() != "-1")
        {
            TextBox myt = (TextBox)GridView1.Rows[Convert.ToInt32(ViewState["EditFlag"].ToString())].Cells[2].FindControl("TextBox1");
            myt.ReadOnly = true;
        }
    }
以上是模板列!!所要注意的是一但保存,要将ViewState["EditFlag"]="-1";

你可能感兴趣的:(ASP.NET)