我想这样,单击Gridview中某行的时候,如果第3列中有Yes,就可以编辑,否则不允许编辑,按钮为灰色。

解决方案 »

  1.   

    设置DetailsView的Enable属性
      

  2.   


        //最初默认为detailsview1.Enabled=false;    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[2].Text.Equals("Yes"))
                {
                    //detailview1是你的DetailsView的名称                DetailsView dv = e.Row.FindControl("detailsview1") as DetailsView;
                    dv.Enabled = true;
                }
            }
        }
      

  3.   

    我写错了,应该在Select事件中写
      

  4.   

    不行啊,我之前是在GridView1_SelectedIndexChanging下根据得到的值来判定是否能执行编辑按钮
    但是这个编辑按钮在GridView1_SelectedIndexChanging下面用Findcontrol,居然找不到
      

  5.   

    在OnSelectedIndexChanged事件中处理
      

  6.   

        protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            if (GridView1.Rows[e.NewSelectedIndex].Cells[2].Text.Equals("Yes"))
            {
                DetailsView dv = GridView1.Rows[e.NewSelectedIndex].FindControl("detailsview1") as DetailsView;
                dv.Enabled = true;         }
        }
      

  7.   

     protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string Identity= GridView1.Rows[GridView1.SelectedIndex].Cells[2].Text;
            此处获取是否第3列是yes
            DetailsView1.DataSource = myDb.dt(sqlStr);
            DetailsView1.DataBind();
            if(Identity!="yes")
               {        
                DetailsView1.Enabled=false ; 
                }
        }