在DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)事件里
先用e.item.findcontrol("你的textbox的id")找到textbox,然后再設置
它的width

解决方案 »

  1.   

    模板列<asp:TemplateColumn HeaderText="编号">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.编号") %>' ID="Label1">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID="txtSerialCode" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.编号") %>' Width="80">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  2.   

    可以使用模板列
    也可以在DataGrid1_EditCommand事件里改变文本框 的大小
      

  3.   

    TextBox tb = (TextBox)e.Item[e.EditItemINdex].cell[0].FindControl("ddd");
    tb.Width = 80;
      

  4.   

    用模板列做,如下:<asp:TemplateColumn HeaderText="编号">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.编号") %>' ID="Label1">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID="txtSerialCode" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.编号") %>' Width="80">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  5.   

    eg:
    if(e.Item.ItemType == ListItemType.EditItem)
        {   
          TextBox tb = (TextBox)e.Item.FindControl("YouTextBox");
          tb.Width   = Unit.Parse("10px");
          //tb.CssClass = "textbox";
         // tb.Text    = Server.HtmlDecode(tb.Text);
         }
      

  6.   

    TextBox tb = (TextBox)e.Item[e.EditItemINdex].cell[0].FindControl("tb");
    tb.Width = 60;