datagird编辑模板的列的宽度问题,一点修改,列就变的老长,里面的textbox也是老长,如何缩短,让他不变形?

解决方案 »

  1.   

    改变标题
         <HeaderStyle Width="50px"></HeaderStyle>
    改变表体
         <ItemStyle Width="80px"></ItemStyle>
      

  2.   

    把要修改的列改成模版列, 这样好控制一点如:<asp:TemplateColumn>
       <ItemTemplate>
            <%# DataBinder.Eval(Container.DataItem, "fieldName")%>
       </ItemTemplate>
       <EditItemTemplate>
            <asp:TextBox id="editBox" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "fieldName")%>' Columns="15" />
       </EditItemTemplate>
    </asp:TemplateColumn>在上面的 EditItemTemplate 中可以随便控制编辑框的宽
      

  3.   

    设置绑定列或者自动生成列的编辑框宽度
    请在你的ItemDataBound事件中加入一下代码:
    if (e.Item.ItemType == ListItemType.EditItem)
    {
    for (int i = 0; i < e.Item.Cells.Count; i++)
    {
    TextBox txt = (TextBox)e.Item.Cells[i].Controls[0];
    txt.Width = Unit.Pixel(50);
    }
    }
      

  4.   

    用模板列比较好用,然后当点击编辑时显示TextBox控件,否则显示Label控件