这是DataGrid的一列
<asp:TemplateColumn HeaderText="备注">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "备注") %>' ID="lbl_Re" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Runat="server" ID="tbx_Re" Text='<%# DataBinder.Eval(Container.DataItem, "备注")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>这个列在非编辑状态的时候可以控制asp:Label的Width属性来控制列的宽度, 一旦编辑的时候,列宽度就改变了; 编辑的时候, 控制asp:TextBox的width属性只是控制编辑框的宽度, 并没有控制列的宽度;修改headerStyle的width属性即不能控制非编辑状态的列宽度, 也不能控制编辑状态的列宽度.请问怎样才可以控制编辑状态和非编辑状态下的列宽度呢?

解决方案 »

  1.   

    private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ListItemType li=e.Item.ItemType;
    if(li==ListItemType.EditItem)
    {
    TextBox txtzhuangtai=(TextBox)e.Item.Cells[2].Controls[0];
    txtzhuangtai.Width=Unit.Pixel(50);   
    TextBox txtfumian=(TextBox)e.Item.Cells[3].Controls[0];
    txtfumian.Width=Unit.Pixel(50);
    } }
      

  2.   

    就控制一个宽度而已,有没有什么方便一点的方法啊?
    另外不是很明白你的代码和datacolumn有什么关系
      

  3.   

    在DataGrid中加入
    <EditItemStyle Width ="50px" ></EditItemStyle>
      

  4.   

    <EditItemStyle Width ="50px" ></EditItemStyle>
    应该放在那个html标签之下呢?
    <asp:DataGrid>、<asp:TemplateColumn>还是<EditItemTemplate>
    呢?
      

  5.   

    其实在属性生成器里面-->格式-->项、列
    就能直接设置了
      

  6.   

    DataGrid属性编辑器里可以设置的,自己看一下
      

  7.   

    就在DataGrid属性编辑器里格式->列里设置