如何在引导的DataGrid列中隐藏字段但保持列宽?

时间:2017-10-10 14:34:47

标签: asp.net datagrid

当我在我的一个DataGrid列中隐藏字段时,列的宽度似乎完全从网格中省略,导致我的所有其他列的大小调整被重新调整。现在,通过引导样式(CssClass =“table table-hover”;见下文)已经[响应]自动调整列的大小。没关系。什么不好是当我动态地(从代码隐藏)隐藏其中一个字段(Visible = false)时第二次调整列宽度 - 原因是,我有一个第二个DataGrid与下面的第一个相同,其中未触动的列width 必须匹配(我没有隐藏任何字段)。

<asp:datagrid id="dgS" AutoGenerateColumns="False" CssClass="table table-hover" ShowHeader="False" ShowFooter="False" runat="server" DataKeyField="SID" CellPadding="0" GridLines="None" AllowSorting="True" OnItemDataBound="dgS_ItemDataBound">
    <HeaderStyle CssClass="" BackColor="steelblue" ForeColor="white" />
    <Columns>
        <asp:TemplateColumn HeaderText="SID" SortExpression="SID" HeaderStyle-CssClass="   " ItemStyle-CssClass="   ">
            <ItemTemplate>
                <asp:Label ID="lblSID" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "SID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn HeaderText="Grade" SortExpression="GradeChangeDescription" HeaderStyle-CssClass="   " ItemStyle-CssClass="   ">
            <ItemTemplate>
                <asp:dropdownlist id="ddlG" Runat="server"></asp:dropdownlist>                          
            </ItemTemplate>
        </asp:TemplateColumn>   
        <asp:TemplateColumn HeaderText="C" Visible="False" HeaderStyle-CssClass="" ItemStyle-CssClass="">
            <ItemTemplate>
                <asp:Label id="lblC" Runat="server" text='<%# String.Format("{0:MM/dd/yyyy}", DataBinder.Eval(Container.DataItem, "C"))%>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateColumn>
     </Columns>
</asp:datagrid>

1 个答案:

答案 0 :(得分:0)

不是一起隐藏/删除列并导致调整大小,而是可以使用不透明度隐藏其内容。例如: .fakeHidden { opacity: 0;}