我现在把数据表绑定DataGrid,而且显示的时候,只读单元格已经用不同颜色区分。这些只读的单元格分布是没规律的,在我编辑某行的时候,如果这行有这些只读的单元格,那么怎么可以不让它们处于编辑状态?

解决方案 »

  1.   

    <asp:BoundColumn DataField="field" HeaderText="Text" ReadOnly="True">
      

  2.   

    在DataGrid1_ItemDataBound里面加事件,将符合要求的设为ReadOnly="True"
      

  3.   

    楼上用DataGrid1_ItemDataBound事件,你设那个ReadOnly="True"??单元格如果有这个ReadOnly属性,我还用在这里发问?
      

  4.   

    我想了一办法,当编辑某行的时候,把这行含有只读的单元格的列都设为只读,用BoundColumn的ReadOnly属性设,编辑完一行的时候,就把这些列的ReadOnly设为false;即解锁。不知这个方法行不行,正在试~~·
      

  5.   

    确实要在DataGrid1_ItemDataBound处理
    if(e.Item.ItemType == ListItemType.EditItem)
    {
    txtEdit=((TextBox)e.Item.Cells[col.Ordinal+1].Controls[0]);
    if (你不想编辑的列)
    {
    e.Item.Cells[col.Ordinal+1].Text=txtEdit.Text;
    }
    }
      

  6.   

    DataGrid1_ItemDataBound事件中
    //Cell[为只读列的索引]
    if(e.Item.ItemType == ListItemType.EditItem)
    {
    TextBox tb = (TextBox)e.Item.Cells[5].Controls[0];

    tb.ReadOnly=true;
    }
      

  7.   

    通过条件判断成立,那么e.ite.enable=false;
      

  8.   

    qqdao(青青岛-=等待升星=-)的方法可以,但为甚么重新给e.Item.Cells[Index].Text赋值,本文框就不出现了??
      

  9.   

    给e.Item.Cells[Index].Text赋值,是给单元格赋值而不是给单元格里的TextBox赋值
    这样解析到页面的就不是TextBox了而是Cell