2

私は c# を使用して asp.net に取り組んでいます。3 つのアンカー タグ リンクと 1 つの html ラベルを持つ 1 つのマスター ページがあります。ユーザーが特定のリンクをクリックすると、特定のページにリダイレクトされ、リンク テキストがラベルに表示されます。私は次のコードを使用しました、

$(document).ready(function () {
            $('#div1 a').click(function () {
                if (focus == true)
                    $('#lblHeader').text("Home");
            });
            $('#blog').click(function () {
                if (focus == true)
                    $('#lblHeader').text("Blog");
            });
            $('#about').click(function () {
                if (focus == true)
                    $('#lblHeader').text("About");
            });
        });

私を導いてください。

4

3 に答える 3

2

ラベル サーバー コントロールがある場合、ポストバックが発生する前に JavaScript でテキストを変更しても、ページ全体が再描画されるため、効果はありません。

編集:あなたがやろうとしていることはわかっていると思います。マスター ページにを作成しcontentplaceholder、各ページにその値を設定してみませんか?

マスター ページで:

<%@ Master Language="C#" %>
...
<asp:contentplaceholder id="PageLabel" runat="server" />

各コンテンツ ページで:

<asp:Content ID="Content1" ContentPlaceHolderID="PageLabel" Runat="Server" >
    Home <!--or about, or blog-->
</asp:content>
于 2012-06-23T00:19:14.770 に答える
1

私があなたの問題を正しく理解している場合、ラベルはマスターページにあり、おそらくasp.netがマスターページのラベルのIDを変更するため、$('#lblHeader')がラベルに適切にアクセスしていません-これを試してください:

       $(document).ready(function () {
        $('#div1 a').click(function () {
            if (focus == true)
                 $('[id$=lblHeader]').text("Home");
        });
        $('#blog').click(function () {
            if (focus == true)
                 $('[id$=lblHeader]').text("Blog");
        });
        $('#about').click(function () {
            if (focus == true)
                 $('[id$=lblHeader]').text("About");
        });
    });

またはその値を非表示フィールドに保存し、クライアントページの document.ready でラベルに値を割り当てます-私が提供したIDを使用します

于 2012-06-23T00:18:31.447 に答える
0

リンクをクリックした後にユーザーに何かを表示させたい場合は、ブラウザのデフォルトを防ぎ、必要な期間のタイマーを設定する必要があります。

これは非常に優れたユーザー エクスペリエンスを提供しません。

$('#div1 a, #blog, #about').click(function() {
    if (focus == true) {
        $('[id$=lblHeader]').text("Home");
        var href = this.href
        setTimeout(function() {
            window.location = href;
        }, 2000);
        return false;
    }

});
于 2012-06-23T00:59:13.203 に答える