隐藏或禁用C#代码背后的MultiView选项卡?

时间:2014-10-16 16:55:52

标签: c# asp.net multiview

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

我对我的搜索感到惊讶,单独使用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 ">

1 个答案:

答案 0 :(得分:1)

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