private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{

if(e.Item.ItemType == ListItemType.EditItem)
{
if(e.Item.Controls[4].Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox tb = (TextBox)e.Item.Controls[4].Controls[0];

//tb.ForeColor=Color.Red;
//tb.Width = Unit.Parse("20px");
 
tb.Width = DataGrid1.Columns[4].HeaderStyle.Width; tb.Text = Server.HtmlDecode(tb.Text);
}

}
}

解决方案 »

  1.   

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

  2.   

    习惯了按tab键
    自己改变Width="80"的值以改变edit后的TextBox的宽度