隐藏或禁用C#代码隐藏的多视图选项卡

本文关键字:隐藏 视图 选项 代码 | 更新日期: 2023-09-27 18:26:43

我第一次使用多视图控件来在单击选项卡菜单项时显示各种工具。

我对我的搜索感到惊讶——仅仅使用Asp.net/C#代码是不可能的吗?

例如,如果UserName的Session值不匹配,如何在代码隐藏中禁用Tab?

这是一个C#web应用程序。

<asp:MultiView ID="ToolsMultiView" runat="server" ActiveViewIndex="0">
<asp:View ID="Tab1" runat="server">
    <div class="row">
        lots more code..
    </div>
</asp:View>
<asp:View ID="Tab2" runat="server">
    <div class="row">
        lots more code..
    </div>
</asp:View>
<asp:View ID="Tab3" runat="server">
    <div class="row">
        lots more code..
    </div>
</asp:View>

我还发现我不允许在.aspx页面上添加条件代码来跳过asp:View部分。

分析器错误消息:呈现块不能嵌套在MultiView控件中。

Line 171:            <div class="viewWrapper">
Line 172:                <asp:MultiView ID="ToolsMultiView" runat="server" ActiveViewIndex="0">
Line 173:                <%if (1 = 1) { %>
Line 174:                    <asp:View ID="Tab1" runat="server">
Line 175:                        <div class="row ">

隐藏或禁用C#代码隐藏的多视图选项卡

<asp:MultiView ID="MV1" runat="server">
    <asp:View ID="view1" runat="server">
        <p>View 1 - FOR Bob's EYES ONLY</p>
    </asp:View>
    <asp:View ID="view2" runat="server">
        <p>View 2 - for everyone</p>
    </asp:View>
</asp:MultiView>

然后在你的代码背后(是的,有这样一件事)。

    if (User.Identity.Name != "Bob")
    {
        MV1.Views.Remove(view1);
        MV1.SetActiveView(view2);
    }