【问题标题】:Make Sectioned Page Content制作分段页面内容
【发布时间】:2011-07-15 00:57:36
【问题描述】:

这个问题我很难说清楚,所以请多多包涵。

在 VS Express 中,我正在创建一系列网页。在每个页面上,我都希望有一系列与给定用户角色相关的功能。我希望我的所有 html 代码都在单个 aspx 页面上,但只有某些部分出现(希望是异步的),这由将通过导航栏中的下拉菜单链接到的 url 确定。 p>

我想使用重新路由(我认为它被称为)来保持我的网址美观且更具延展性,这样我以后可以在不破坏书签等的情况下更改它们。

作为用户,在给定的角色中,我会将鼠标悬停在下拉菜单上,并且只看到我被允许执行的功能。单击一个后,它会更新 url 类似于 domain.com/form1 的内容,并且只会显示与该操作相关的代码块(在 aspx 页面中,同样,最好是异步的)。

我正在考虑使用 div 和 css "display:none;"财产。我不确定通过什么机制在各种功能的“视图”之间切换。我应该使用 ASP.NET 的 Javascript 吗?

对于这样一个令人费解的问题,我感到非常抱歉。我花了 20 多分钟,这是我能想到的最好的提问方式。这还有很多意义吗?如果是这样,我是否将这一切都错了,还是我走在正确的轨道上?我很感激这方面的任何尝试。

干杯 ;)

请阅读:我最初想用 url 来完成这个,但我发现使用“MultiView”ASP.NET 控件是解决我的困境的更好解决方案。我只是想澄清我原来的问题和我的答案之间的任何假定差异。就像我说的那样,当时很难弄清楚如何提问。 :)

【问题讨论】:

    标签: javascript asp.net css url view


    【解决方案1】:

    其实叫URL重写。有几种方法可以实现,更简单的可能是 IIS 中的向导。

    对于单个页面中的所有 html,您可以使用面板并在需要时更改其可见性。

    【讨论】:

    • 这听起来有点像我想要的。知道如何在代码中实现这一点吗?即如何通过 url 链接切换他们的可见性?
    【解决方案2】:

    对 .NET 尤其是 ASP.NET 有点陌生,我每天都在学习新事物,从字面上看。我最近发现了“Multiview”控件,这太棒了。我用它来创建多个菜单栏(我知道这看起来很奇怪,但它是为了模拟不同的用户“模式”或用户组等),以及将内容组合到一个页面上,正如我在我的原始文件中提到的那样问题。然后我添加了一个用于在菜单之间切换的辅助控件。这是我如何为我的多菜单栏实现控件的一些示例代码:P

    <asp:MultiView ID="MenuView" runat="server">
        <!-- ADMIN GROUP -->
        <asp:View ID="View0" runat="server">
            <asp:Menu ID="adminNav" runat="server" CssClass="menu" IncludeStyleBlock="False" Orientation="Horizontal"><DynamicMenuItemStyle />
                <Items>
                    <asp:MenuItem NavigateUrl="~/Reports.aspx" Text="View Reports" />
                    <asp:MenuItem NavigateUrl="~/Approve.aspx" Text="Compliment hard-working employees" />
                    <asp:MenuItem NavigateUrl="~/Promote.aspx" Text="Promote the qualified employees :)" />
                    <asp:MenuItem NavigateUrl="~/Fire.aspx" Text="Send underlings home to starving children" />
                </Items>
            </asp:Menu>
        </asp:View>
        <asp:View ID="View1" runat="server">
        <!-- USERS -->
            <asp:Menu ID="userNav" runat="server" CssClass="menu" IncludeStyleBlock="False" 
                Orientation="Horizontal"><DynamicMenuItemStyle />
                <Items>
                    <asp:MenuItem NavigateUrl="~/Work.aspx" Text="Look productive" />
                    <asp:MenuItem NavigateUrl="~/Complain.aspx" Text="Complain about boss" />
                    <asp:MenuItem NavigateUrl="~/Praise.aspx" Text="Show appreciation for your awesome boss" />
                </Items>
            </asp:Menu>
        </asp:View>
    </asp:MultiView>
    <!-- MODE MENU -->
    <asp:DropDownList ID="modeMenu" runat="server" AutoPostBack="True" 
        ViewStateMode="Inherit" CssClass="modeMenu" EnableViewState="True">
        <asp:ListItem>Admin</asp:ListItem>
        <asp:ListItem>User</asp:ListItem>
    </asp:DropDownList>
    

    使用“modeMenu”下拉菜单控制“MenuView”的代码,我将其设置为“position:fixed; left:5px; top:5px;”在我的 CSS 中以防止它受到影响。

    Protected Sub mode(ByVal sender As Object, ByVal e As System.EventArgs) Handles modeMenu.Load, modeMenu.SelectedIndexChanged
        Session.Add("mode", modeMenu.SelectedValue) //I use a session variable to maintain the state of the menu.
        Select Case (modeMenu.SelectedValue)
            Case "Admin"
                MenuView.ActiveViewIndex = 0
            Case "User"
                MenuView.ActiveViewIndex = 1
        End Select
    End Sub
    

    你有它。我希望其他人觉得这很有用。干杯;)

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 2020-11-13
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多