1

私はこのコードを次の形式で持っています:

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

    <asp:TextBox ID="Text1" runat="server"></asp:TextBox>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="Text2" runat="server"></asp:TextBox>
            <asp:Button ID="Submit" runat="server" OnClick="Submit_Click"
                Text="Click Me"/>
        </ContentTemplate>

    </asp:UpdatePanel>

[送信] ボタンをクリックすると、すべてのフォームがサーバー (Text1 と Text2) にポストバックされます。UpdatePanel(Text2)でテキストボックスのみポストバックしたい。出来ますか?

回答ありがとうございます。

編集(解決策): Javascriptを使用した解決策があると思います:

    function onSubmit() {
        var text1 = this.document.getElementById('<%=Text1.ClientID%>');
        text1.disabled = true;
        return true;
    }

    ....

    <asp:Button ID="Submit" OnClientClick="onSubmit();" ..../>

PostBack の前に Text1 が無効になる原因となります。ASP.NET は、無効化されたテキスト ボックスから値をポストバックしないようです。ただし、これは UpdatePanel なしでのみ機能します。もちろん、ポストバック後、Text1 は空です。

4

1 に答える 1

-1

さて、UpdatePanel は、何をポストバックするかを制御します。その動作を変更することはできません。UpdatePanel のみ (私は信じています) と ViewState 全体のフォーム データを投稿する必要があります。ページのライフサイクルが機能するには、ViewState 全体をポストする必要があります。

于 2013-02-28T13:16:24.400 に答える