代码之家  ›  专栏  ›  技术社区  ›  B. Clay Shannon-B. Crow Raven

如何让GridView占据其列中的所有可用宽度?

  •  0
  • B. Clay Shannon-B. Crow Raven  · 技术社区  · 5 年前

    在我的页面中,我有一个GridView,它位于三列(占页面的一半(6/12))的中间(和最大)。不过,它的显示方式似乎是在左右两侧添加了边距和/或填充。我希望它向外扩展,填满所有可用的空间。

    以下是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>
    

    ...下面是它的外观:

    enter image description here

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

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

    我也试着将其设置为列的宽度,但该属性没有公开给我。瞧,我给了div一个Id并添加了“runat server”,从而使它成为一个代码落后的元素:

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

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

    GridView1.Width = col6.Width;
    

    ...但是col6没有这样的公共财产。

    0 回复  |  直到 5 年前
        1
  •  1
  •   MaxiGui VMcreator    5 年前

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

    .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;
    }
    

    此填充用于补偿第行引导设置的边距,如下面的代码所示:

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

    如果你不想发生这种事,我建议你一直申请 mx-0 当你吵架时 px-0 当你有一个 col

    这门课的内容如下:

    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来获得一点空间。