建立了个datagrid,并有编辑和删除功能,但点击编辑时,datagrid的列宽变宽了。如何才能固定列宽?
先谢了

解决方案 »

  1.   

    <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"> 
                                    <Columns> 
                                        <asp:BoundColumn DataField="Name" HeaderText="名字"></asp:BoundColumn> 
                                        <asp:BoundColumn DataField="lunarDate" HeaderText="日期" ItemStyle-Width='50%'>
                                                                    </asp:BoundColumn> 
                                        <asp:BoundColumn DataField="Body" HeaderText="介绍" ItemStyle-Width='200'>
                                                                    </asp:BoundColumn> 
                                    </Columns> 
                                </asp:DataGrid>
      

  2.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD
      

  3.   

    添加模板列,设置被编辑的textbox的宽度为100%;如果是绑定列就不用做这些
    <asp:TemplateColumn SortExpression="UserName" HeaderText="姓名">
           <HeaderStyle Width="70px"></HeaderStyle>
                    <ItemTemplate>                      
                           <%# DataBinder.Eval(Container.DataItem,"UserName") %>                     
                     </ItemTemplate>
                     <EditItemTemplate>
                          <asp:TextBox id=UserName Text='<%# DataBinder.Eval(Container.DataItem,"UserName") %>' Width="100%" Runat="server">
                          </asp:TextBox>
                     </EditItemTemplate>
    </asp:TemplateColumn>
    在ItemDataBound事件中加如下代码,通过调整i的取值来设置对某几个列调整
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {             
                switch (e.Item.ItemType)
                {               
                    case ListItemType.EditItem:
                        for (int i=0; i < DataGrid1.Columns.Count; i++)//只调整被编辑的列
                        {
                          if(e.Item.ItemType==ListItemType.EditItem)
                          {
                               e.Item.Cells[i].Attributes.Add("Width", "70px");
                          }
                        }
    break;
                }
    }
    可以参考
    http://singlepine.cnblogs.com/articles/266538.html