0

ボタンが押されたときに実行されるjQuery関数に次のステートメントがあります。アラートで「dateAndTime」の値をすぐに表示するため、期待どおりに動作します。

$("#Button1").click(function (evt) { // automatically bind the click event
    evt.preventDefault();
    var loc = window.location.href;
    $.ajax({
        type: 'POST',
        url: loc + "/GetDate",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        success: function (msg) {
            $("#Label1").text(msg.d);
            $("#Label1").data("dateAndTime", msg.d);

            alert("the date and time is " + $("#Label1").data("dateAndTime"));
        }
    });
});

aspx からのボタン:

<asp:Button ID="Button3" runat="server" Text="Button" OnClick="Button3_Click" />

Button3_Click は空のメソッドです。

ブラウザ ウィンドウが開いている限り、この値が使用可能であることは理解しています。呼び出された関数が終了してページが読み込まれた後、ポストバックを引き起こすボタンを押します。同じ .js ファイルの「ready」関数に次のステートメントがあります。

alert("the new date and time is " + $("#Label1").data("dateAndTime"));

最初に保存された値が表示されると思いますが、代わりに「未定義」と表示されます。期待どおりに取得する必要がありますか、それとも .data を理解していませんか?

4

1 に答える 1

2

ポストパックを実行すると、ページが更新され、すべてのデータが失われます。まったく新しいドキュメントを取得します。

Cookieまたはセッションストレージにデータを保持することをお勧めします。

于 2013-07-10T20:12:14.803 に答える