GridView 列设为只读的问题!高手请进!速结protected void GV_B()
{
DataSet ds =new DataSet();
ds=//一个不是固定的数据;
GridView1.DataSource = ds;
//这里如何让GridView1.Columns[1]设置为只读
//((BoundField)GridView1.Columns[5]).ReadOnly = true;这个应该怎么用
//放在GridView1_RowEditing里不行,提示找不到索引,
GridView1.DataBind();
}//如何解决?放在GridView1_RowCreated里也不行

解决方案 »

  1.   

    在GridView的RowDataBound事件中
    使用,
    for(int i=0;i<gridView.Rows.count;i++)
    {
       gridview.rows[i].cells[0].Enable = false;
    }如果在编辑事件中就设置它的ReadOnly属性!!!就可以了!!
      

  2.   

    gridview.rows[i].cells[j].ReadOnly = true;
    ???
      

  3.   

    看你使什么事件来编辑GridView控件了
    你要用GridView1_Editing()的话 你光把gridview.rows[i].cells[j].ReadOnly = true;设置成只读是没用的
    因为他还有EditTemplate模板,而你设置的只是ItemTemplate模板
      

  4.   

    在GridView的RowDataBound事件中
    无ReadOnly属性
      

  5.   

    你要用的是 GridView自带的 编辑列事件或更新列事件中写TextBox tb=(TextBox)GridView1.Rows[e.NewEditIndex].Cells[0].Controls[0];
    tb.ReadOnly=true;没开.NET  拿手写的 差不多就是这个意思吧。
      

  6.   

    想设置的是UPDATE里的那个TEXTBOX为只读。
      

  7.   

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            //((BoundField)GridView1.Columns[5]).ReadOnly = true;        TextBox tb = (TextBox)GridView1.Rows[e.NewEditIndex].Cells[3].Controls[0];
            tb.ReadOnly = true;        GridView1.EditIndex = e.NewEditIndex;
            GridView1.DataSource = Class_SQL.GV1_Page_Nonce(Class_SQL.GV1_Page_array(表.SelectedValue, "ID", "", 当前页.SelectedValue, 显示行.SelectedValue, "", ""));
            GridView1.DataBind();
            
        }
    还是提示超出索引。GridView1是自动帮定列的。10几列
      

  8.   

    最好不要用自动生成的字段,自己创建BoundField,这样控制起来非常方便。