MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
        BindGrid();foreach (TableCell tc in MyDataGrid.Items[MyDataGrid.EditItemIndex].Cells)
        {
foreach (Control c in tc.Controls)  //or use tc.Controls[0]
{
if (c is TextBox)
{
TextBox tb = (TextBox)c;
tb.Columns = 10;  
tb.Style["color"] = "red";
}
}
}

解决方案 »

  1.   

    那你就该编辑一下TEXTBOX的属性啊。是不是你另开一个新的窗口,然后你就打算编辑,那你就可以用像:MAXSIZE,LENGTH等属性来设TEXTBOX。。是不是?
      

  2.   

    如果使用datagrid的编辑按钮,直接改datagrid列的属性,将其增宽。
    在 datagrid--属性生成器--格式--列 中改
      

  3.   

    private void Grid_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //设置编辑时textbox长度
    if(e.Item.ItemType==ListItemType.EditItem)
    {
    ((TextBox)e.Item.Cells[6].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[6].Controls[0]).CssClass="tabstringtextbox";
    ((TextBox)e.Item.Cells[7].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[7].Controls[0]).CssClass="tabstringtextbox";
    ((TextBox)e.Item.Cells[9].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[9].Controls[0]).CssClass="tabstringtextbox";
    }
    }
      

  4.   

    如此例中做,出来的文本框就会和列一般宽了.<asp:datagrid id="dgItemList" runat="server" Width="100%" AutoGenerateColumns="False">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <Columns>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
    <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
    <asp:TemplateColumn HeaderText="Model">
    <ItemTemplate>
    <asp:Label id="Label2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Model") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="TextBox1" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Model") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Color">
    <ItemTemplate>
    <asp:Label id="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Color") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="Textbox2" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Color") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Description">
    <ItemTemplate>
    <asp:Label id=Label3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Description") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=Textbox3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Description") %>' Width="100%" TextMode="MultiLine">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Quantity Sets">
    <ItemStyle HorizontalAlign="Right"></ItemStyle>
    <ItemTemplate>
    <asp:Label id="Label4" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Ship") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="Textbox4" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Ship") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="U-Price">
    <ItemStyle HorizontalAlign="Right"></ItemStyle>
    <ItemTemplate>
    <asp:Label id=Label5 runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Price") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=Textbox5 runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Price") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Amount">
    <ItemStyle HorizontalAlign="Right"></ItemStyle>
    <ItemTemplate>
    <asp:Label id="Label6" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Amount") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:Label id="Label7" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Amount") %>'>
    </asp:Label>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn Visible="False" HeaderText="RowID"></asp:TemplateColumn>
    <asp:TemplateColumn Visible="False" HeaderText="InvoiceRowID"></asp:TemplateColumn>
    </Columns>
    </asp:datagrid>
      

  5.   

    在DataGrid模板中,对textBox进行调整不就可以。