在EditTemplate中设置textbox的长度比较好,同时检查css的设置是否覆盖了本设置

解决方案 »

  1.   

    在datagrid的属性生成器中,把列转换成模板列,然后可以在编辑模板中设置textbox的各种属性
      

  2.   

    把你的这些代码放在datagrid的ItemDataBound事件中
      

  3.   

    在EDIT 事件里边,
    {
      ...
      dg.EditItemIndex = e.Item.ItemIndex;
      dgBind();// bind the datagrid again;
      ((TextBox)dg.Item[dg.EditeItemIndex].Cells[1].Controls[0]).Columns = 10;
      ... ...
    }
      

  4.   

    这样的模板列就可以
    <asp:TemplateColumn HeaderText="解决方法">
    <ItemStyle Width="14%"></ItemStyle>
    <ItemTemplate>
    <asp:label text='<%#DataBinder.Eval(Container, "DataItem.method") %>' runat=server ID="Label12"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID="txtmethod" text='<%#DataBinder.Eval(Container, "DataItem.method")%>' Runat =server Wrap =false />
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  5.   

    最简单做法:把ItemTemplate中的Label换成一个TextBox(调节一下属性使TextBox没有边框)这样永远都一样长。
    较难做法: 修改DataGrid长度。