最近在做毕业设计,遇到一个显示上面的问题不知道该怎么解决,特来请教一下各位。正常情况下显示如上图所示,看起来还算正常,可是一旦我点击后面的那个“编辑”列,DATAGIRD中的每一列就会变得特别宽,高度好像也有所增加,把整个DATAGRID撑得特别大特别难看,一页都装不下了。
如下图所示
请问一下该如何解决这个问题  谢谢

解决方案 »

  1.   

    请参考:DataGrid更改数据库记录时不让DataGrid“变大”
      

  2.   

    gridview 的EditItemTemplate中设置width
    textbox的width
      

  3.   

    在ItemDataBound事件中设置: 
    if   (e.Item.ItemType   ==   ListItemType.EditItem) 

    TextBox   txt   =   (TextBox)e.Item.Cells[0].Controls[0]; 
    txt.Width   =   Unit.Pixel(50); 

     
     
      

  4.   

    gridview 的EditItemTemplate中设置width,这里我设置了,不过好像没什么作用textbox的width在哪里设置呢?你在8#说的方法?
      

  5.   

    在ItemDataBound事件中设置: 
    if (e.Item.ItemType == ListItemType.EditItem) 

    TextBox txt = (TextBox)e.Item.Cells[0].Controls[0]; 
    txt.Width = Unit.Pixel(50); 
    }  我加了这段代码,不过还是不管用
      

  6.   

    是不是说右键DATAGRID-属性生成器-把按钮列里的“编辑、更新、取消”这一列删了,重新增加一个模板列?点完编辑列的时候,本来还会自动出现“更新”,“取消”两个列呢。
      

  7.   

    DATAGRID -> 属性 -> colluenms(英文我记不清,意思是列)  ->对话框中选中编辑的列  -> 在对话框中点击转换为模板  ->  OK 
      

  8.   

    恩 我找到了 “把此列转换为模板列”那是应该把DATAGRID中的每一列都转为模板列还是只需要把“编辑”列转为模板列?
      

  9.   

    可以,在html里改一下就行,不过没那个必要,模板列用起来更灵活。
      

  10.   

    <asp:TemplateColumn HeaderText="角色描述">
    <ItemTemplate>
    <asp:Label id=Label3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.role_desc") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=TextBox3 runat="server" Width="164px" Height="25px" Text='<%# DataBinder.Eval(Container, "DataItem.role_desc") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>是不是把外层的都删掉
    就留下 <asp:TextBox id=TextBox3 runat="server" Width="164px" Height="25px" Text='<%# DataBinder.Eval(Container, "DataItem.role_desc") %>'>
    </asp:TextBox>
    就改回去了?
      

  11.   

    改成类似这样的            
    <asp:BoundField DataField="bt" HeaderText="QQQQQQ" SortExpression="bt">
                <HeaderStyle Width="530px" />
                </asp:BoundField>
    没有转换前的状态