0

私はまだasp.netに頭を悩ませています。

マルチビューを使用するいくつかのオンライン例に従い、アクティブなビューを選択するためのトリガーとしてMenuクラスのようなものを使用すると、それらが正常に機能するようになりました。onClickイベントがあると、非常に簡単になります。

しかし、メニューコントロールから送信されたコードを変更する方法がわかりません。

私は次のマルチビューコントロールを持っています...

<asp:View ID="0" runat="server">

   <p>view page 1</p>

</asp:View>

<asp:View ID="1" runat="server">

   <p>view page 2</p>

</asp:View>

また、ビューをトリガーするために次の構造を使用する必要があります。(注:これはブラウザーに出力されるものである必要があります。必ずしもaspxページのリテラルコードである必要はありません)

<a class="button large-plain" href="" >
    <span>
        See page 1
    </span>
</a>
<a class="button large-plain" href="" >
    <span>
        See page 2
    </span>
</a>

明確にするために:上記のマークアップで動作する外部デザイナーによって提供されたスタイルシートがあります。トリガーをaspボタンコントロールまたはメニューコントロールにすることができれば、それは簡単です。しかし、そのときはスタイルシートが機能せず、スタイルシートが機能しなければ世界は終わると言われています。

この種の構造を出力するようにメニューコントロールをカスタマイズできますか?(もしそうなら、どのように?)

ビューをトリガーするリンクをハードコーディングするだけで済みます(構造は変更されません)。しかし、ハードコーディングした場合、リンクがクリックされたonClickイベントをどのように呼び出すのですか?

4

1 に答える 1

1

次の方法でタグをサーバー側のコントロールに変更し、それをトリガーとして使用できる可能性があると思います。IDとrunat="server"を任意のhtml要素に追加すると、他の.NETスタイルのコントロールと同じようにプログラムでそれらにアクセスできるようになります。さらに、.NET 4.0を使用している場合は、ClientIdMode = "Static"属性を追加して、IDが入力したとおりになり、ASP.NETによって変更されないようにすることもできます。

クリックの問題を解決するには、OnServerClick = ""属性を追加して、リンクがクリックされたときにサーバーで呼び出すメソッドを指定します。

<a class="button large-plain" href="" ID="ViewPage1" runat="server" OnServerClick="ViewPage1_Click">
    <span>
        See page 1
    </span>
</a>
<a class="button large-plain" href=""  ID="ViewPage2" runat="server" OnServerClick="ViewPage2_Click">
    <span>
        See page 2
    </span>
</a>
于 2012-07-31T13:07:36.507 に答える