使用datagrid自带的editcommandcolumn对数据进行编辑,比如
<asp:EditCommandColumn ButtonType="LinkButton" EditText="编辑" CancelText="取消" UpdateText="提交" HeaderText="操作"></asp:EditCommandColumn>editcommand事件为 dg.EditItemIndex = e.Item.ItemIndex;
bindgrid();这样点击某行,该行每一列都会出现1个textbox,里面内容可以编辑,问题是这个textbox的宽度我无法控制,很小的一列它都出现一个很长的textbox,原来datagrid宽度一下子被撑大了,十分难看。原来为每一个column设置的宽度,headerstyle-width和itemstyle-width都不起作用。不知道如何解决这个问题?

解决方案 »

  1.   

    可以调整,方法如下:
       vb.net:
        Dim Part_Name As TextBox = e.Item.Cells(2).Controls(0)
        Part_Name.Width = Unit.Pixel(100)   C#:
       TextBox Part_Name=(TextBox)e.Item.Cell(2).Controls(0);
       Part_Name.Width=Unit.Pixel(100)
      

  2.   

    楼上正解。c#:TextBox Part_Name=(TextBox)e.Item.Cell[2].Controls[0];
      

  3.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.EditItem)
        {
            TextBox t = (TextBox)e.Item.Cells[X].Controls[0];
            t.Width = 20;
        }
    }