【问题标题】:Hide a gridview column header base on the value of a code behind variable根据变量后面代码的值隐藏gridview列标题
【发布时间】:2020-03-10 20:22:26
【问题描述】:

我在后面的代码中设置了这个变量:

Protected showHidePrice As Boolean = True

Property ShowHidePricePty() As Boolean 
    Get
        Return showHidePrice
    End Get
    Set(ByVal value As Boolean)
        showHidePrice = value
    End Set
End Property

并在标记中有这个:

<asp:TemplateField HeaderText="Total">
    <ItemTemplate>
        <asp:label runat="server" ID="lblExtended_Price" Text='<%# Eval("Extended_Price")%>' Visible='<%#Me.ShowHidePricePty%>' />
    </ItemTemplate>
    <HeaderStyle Width="10%" />
</asp:TemplateField>

这样我可以隐藏或显示“扩展价格”列的内容,但不能对其列标题执行相同操作。

有没有什么方法可以隐藏列标题也可以使用 ShowHeader='&lt;%#Me.ShowHidePricePty%&gt;' 之类的东西(现在不适合我)?

我知道我可以使用诸如 onRowDataBound 之类的方法来完成此操作,但我想使用该属性,以防万一。

【问题讨论】:

    标签: asp.net vb.net gridview webforms


    【解决方案1】:

    它可以与 HeaderTemplate 内联完成,但问题在于您基于哪一行显示或隐藏标题文本。

    <asp:GridView ID="GridView1" runat="server">
        <Columns>
            <asp:TemplateField>
                <HeaderTemplate>
                    <%# Convert.ToBoolean(((System.Data.DataTable)GridView1.DataSource).Rows[0][0]) ? "HeaderText" : "" %>
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval("column1") %>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    

    或者使用像你的ShowHidePricePty这样的方法

    <HeaderTemplate>
        <%# ShowHidePricePty() ? "HeaderText" : "" %>
    </HeaderTemplate>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-24
      • 2014-03-27
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多