我怎样才能让我的 GridView 占用其列中所有可用的宽度?

How can I get my GridView to take up all the width available to it within its column?

在我的页面中,我有一个 GridView,它位于三列的中间(也是最大的)(占页面的一半(6/12))。不过,它显示时好像在其左侧和右侧添加了边距 and/or 填充。我希望它向外扩展以填充所有可用的 space.

这是html:

<div class="col-6">
. . .
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"     OnDataBound="GridView1_DataBound" OnPreRender="GridView1_PreRender">
    <Columns>
        <asp:BoundField DataField="MovieTitle" HeaderText="MovieTitle" SortExpression="MovieTitle" />
        . . .
        <asp:BoundField DataField="Minutes" HeaderText="Minutes" SortExpression="Minutes" />
    </Columns>
</asp:GridView>

...这是它的样子:

(顺便说一句,数据是“假的”,不是用户选择“查找”按钮时实际返回的数据)

当然,您可以将宽度设置为绝对值,但我没有看到将其设置为相对值(例如,列宽的 100%)的方法。

我也尝试将其设置为列的宽度,但是 属性 并没有让我这样做。 IOW,我通过给它一个 Id 并添加“runat server”使 div 成为代码隐藏元素:

<div ID="col6" runat="server" class="col-6">

...然后在代码隐藏中尝试这样做:

GridView1.Width = col6.Width;

...但是 col6 没有这样的 public 属性.

这是因为 bootstrap 默认情况下在其所有列上应用填充。正如您在下面的代码中看到的:

.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

此填充用于补偿行中由 bootstrap 设置的边距,如下面的代码所示:

.row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

如果您不希望发生这种情况,我建议您在有排行时始终应用 mx-0,在有 col

时始终应用 px-0

这个class会像:

mx-0{
  margin-left: 0 !important;
  margin-right: 0 !important;
}
px-0{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

所以只需应用 row mx-0col-6 px-0 然后你可能需要调整 col-6 中的一些 div 以获得一点 space.