0

私は次のようにjqueryを介してテキストボックスにテキストをロードしています:

 $.ajax({
        type: "POST",
        url: "../myfile.ascx/myfunction",
        data: "{variable:'" + value + "'}",
        contentType: "application/json",
        dataType: "json",
        success: function (response) {
            $('input[id$=txtMyTextBox]').val(response.d);

        }
    });

この部分は正常に機能しますが、ページを他のコントロールからポストバックさせると、txtMyTextBoxに挿入されていた値が失われます。現在、ユーザーコントロールを使用しているため、ページの読み込みではなくデータバインドを使用しています。私はこれを試しました:

protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "RefreshJob();", true);
    }

しかし、それでも価値は戻りません。ポストバック後に値を保持する非表示フィールドを追加しましたが、テキストボックスにも値を保持するために何をすべきかわかりません。

4

1 に答える 1

2

html入力要素を使用していると思います。代わりにaspテキストボックスコントロールを使用し、そのIDをjqueryに渡し$('#<%=txtbox.ClientID%>').val(response.d);、ビューステートを使用してテキストボックスコントロールの状態を維持します。

于 2013-03-15T15:18:13.057 に答える