绑定到SqlDataAdapter后,ASP.NET GridView宽度不会保持在100%

时间:2014-07-31 18:03:18

标签: c# html css asp.net gridview

我有一个GridView,希望它的宽度保持在100%。它在设计视图中看起来很好,所以我假设一些关于与SqlDataAdapter绑定的东西会重置宽度以适应数据,但我希望它保持在100%。宽度最终成为支持绑定数据所需的任何东西。

我对这一切都不熟悉,所以我相信你们所有人的答案都会比对我更明显。

<div id="X" class="In-lineControl" style="width:100%">
     <asp:GridView ID="XGV" runat="server" CssClass="GridView" BorderStyle="Groove">
          <AlternatingRowStyle BackColor="#B4C2E0" />
          <HeaderStyle BackColor="#6C88C4" ForeColor="White" />
     </asp:GridView>
</div>

XData.SelectCommand = cmd;
DataTable XDT = new DataTable();
XData.Fill(XDT);
XGV.DataSource = XDT;
XGV.DataBind();

.GridView{
width:100%;
}

.In-lineControl{
display:block;
margin-top: 5px;
margin-bottom: 10px;
}

The GridView should extend its width out to 100% of the white area. It does in the design view, but the width changes after binding a SqlDataAdapter in the code behind.

3 个答案:

答案 0 :(得分:1)

您应该检查CssClass GridView并查看是否设置了宽度。

答案 1 :(得分:0)

我建议您根据数据源在网格中定义绑定列和字段,并为每个列提供宽度。

<asp:GridView AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField ControlStyle-Width="25%"></asp:BoundField>
    </Columns>
</asp:GridView>

默认情况下,AutoGeneratedColumns为true,因此当您绑定到数据时,它似乎会根据其中的数据调整每个列的大小。因此,调整整个网格的大小。

答案 2 :(得分:0)

在DataBind修复问题后,将CssClass应用于后面代码中的GridView。

背后的代码最终看起来像这样:

XData.SelectCommand = cmd;
DataTable XDT = new DataTable();
XData.Fill(XDT);
XGV.DataSource = XDT;
XGV.DataBind();
XGV.CssClass = "GridView";