我怎样才能让我的 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-0
和 col-6 px-0
然后你可能需要调整 col-6 中的一些 div 以获得一点 space.
在我的页面中,我有一个 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-0
和 col-6 px-0
然后你可能需要调整 col-6 中的一些 div 以获得一点 space.