ASP.NET表单部分提交

时间:2013-02-28 13:05:27

标签: asp.net ajax updatepanel

我有以下形式的代码:

    <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不会从禁用的文本框中回发值。 Hovewer,这只适用于没有UpdatePanel。当然,回发后Text1为空。

1 个答案:

答案 0 :(得分:0)

好吧,UpdatePanel控制了回发的内容。你无法改变这种行为。它应该只发布UpdatePanel的表单数据(我相信),加上整个ViewState。它必须发布整个ViewState以使页面生命周期起作用。