1

私はcssレイアウトを持っています:maxdesign.comからの1列の固定幅レイアウト

次のように定義された2つのメニュー項目があります。

<div id="navigation">
        <ul>
            <li><a href="#">Data Entry</a></li>
            <li><a href="#">Reports</a></li>
        </ul>
    </div>

ここで、2つの役割があるとします。guestoperator、たとえば、役割を持つユーザーがログインしている場合はメニューguestの項目のみが表示され、ユーザーがログインしている場合は両方のオプションが表示されます。 。Reportoperator

どうすればそれを達成できますか?

編集:

あなたの回答に基づいて、これに対処するためにサーバー側のロジックを使用します。

<div id="navigation">
        <ul>
            <li><asp:LinkButton ID="lkbDataEntry" runat="server">Data Entry</asp:LinkButton></li>
            <li><asp:LinkButton ID="lkbReports" runat="server">Reports</asp:LinkButton></li>                
        </ul>
    </div>

ありがとう!

4

4 に答える 4

1

メニュー要素にID属性を指定してから、コードビハインドでRegisterClientSideScriptBlockを使用するか、Response.Writeを使用してJavaScriptをクライアントに送信し、特定の条件に基づいて要素を非表示(または表示)にすることができます。

于 2012-10-18T15:07:19.937 に答える
1

これをPage_Loadに入れることができます。

    Dim cs As ClientScriptManager = Page.ClientScript

    If Not cs.IsClientScriptBlockRegistered(Me.GetType(), "RoleVariable") Then
        Dim js As New String
        js = "var _role = " & role & ";"
        cs.RegisterStartupScript(Me.GetType(), "RoleVariable", js, True)
    End If

そしてそこから、必要なアイテムの可視性を操作できるJavascriptレルムでの役割が得られます。

それで...

<script type="text/javascript">
    function hideStuff() {
        if (_role === "operator") {
            // hide/show your elements here
        }
        else if (_role === "guest") {
            // hide/show your elements here
        }
    }
</script>

このアプローチはすべてクライアント側であるため、他の開発者が本当に必要な場合は簡単に操作できることに注意してください。しかし一方で、それは最も単純です。セキュリティの高い状況では、このアプローチを使用しないでください。

于 2012-10-18T15:10:15.830 に答える
1

シンプルなものはどうですか?

<% if(Page.User.IsInRole("operator") || Page.User.IsInRole("guest")) { %>
<div id="navigation">
        <ul>
            <% if(Page.User.IsInRole("operator")) { %>
            <li><a href="#">Data Entry</a></li>
            <% } %>
            <li><a href="#">Reports</a></li>
        </ul>
    </div>
<% } %>
于 2012-10-18T15:14:46.783 に答える
0

私はあなたがスタイルシートで論理演算を行うことができる(またはすべきである)と100%は思いません。いくつかのJavaScriptを用意してから、ゲストまたはオペレーターに基づいて表示するスタイルを決定する必要がある場合があります

于 2012-10-18T15:08:25.300 に答える