同题。进入编辑后,就是datagrid.edititemindex=x后,每个字段下会有一个可编辑的文本框,长度都是统一的,但往往比原单元格长,破坏了表格的整齐。能不能自定义这个文本框的长度?最好是与原字段差不多长。另外,对于编辑后的内容,如何在update...事件中保存回datagrid,在MSDN上的说法看不懂。请各位老大详细点说说吧,请帖出代码,谢谢了!

解决方案 »

  1.   

    还有一个问题,如何可以控制datagrid中的某一列不显示?是哪个属性啊?
      

  2.   

    可以在DATAGRIDBIND事件中查找文本框控件,然后控制其WIDTH属性
      

  3.   

    这些控件不是我加入的啊,怎么找?
    另外请给出删除,保存datagrid中的记录的代码,谢谢了!
      

  4.   

    如何可以控制datagrid中的某一列不显示?是哪个属性啊?
    ---------
    把那一列的宽度设为0,把列名去掉就可以了!
      

  5.   

    控制datagrid中的某一列不显示我已经找到属性了,谢谢。
      

  6.   

    在ItemDataBound事件
    if(e.Item.ItemType==ListItemType.EditItem)
    {
    TextBox textBox = (TextBox)e.Item.Cells[n].Controls[0];//n为列的值
    textBox.Width = ***;//要设置的宽度
    }
      

  7.   

    如果要写个FOR循环把所有的textBox.Width 都设成=e.item.width应该怎么写呢?
    我写了一个,但出错。
      

  8.   

    我的意思是把每个文本框都设为与e.item.width一样的长度,进入编辑状态后,datagrid不是有很多列吗?每个列都有文本框啊,一个个设置有什么好办法不?
      

  9.   

    if(e.Item.ItemType==ListItemType.EditItem)
    {    
        for (int i = 0; i < e.Item.Cells.Count; i++)
        {
            TextBox textBox = (TextBox)e.Item.Cells[i].Controls[0];
            textBox.Width = 30;
        }
    }是想这样循环吗?
      

  10.   

    ok了,应该加到DataGrid1_EditCommand事件中,在ItemDataBound事件会出错的。
    谢谢大家,结帖。