ASP.NET表单部分提交

ASP.NET表单部分提交,asp.net,ajax,updatepanel,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"> <C

我有以下代码:

    <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>

当我单击Submit按钮时,所有表单都会发布回服务器(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();" ..../>
函数onSubmit(){
var text1=this.document.getElementById(“”);
text1.disabled=true;
返回true;
}
....

这将导致在回发之前禁用Text1。它表明ASP.NET不会从禁用的文本框回发值。Hovewer,这只能在没有UpdatePanel的情况下工作。当然,回发后Text1是空的。

嗯,UpdatePanel控制要回发的内容。你不能改变这种行为。它应该只发布UpdatePanel的表单数据(我相信),以及整个ViewState。它必须发布整个视图状态,页面生命周期才能正常工作。

您的意思是在文本中进行更改1文本也可用于部分回发响应?我不想在单击“提交”按钮时回发文本1。我只想提交Text2。提交按钮发回Text2(我想要的),但也要提交Text1(不在UpdatePanel中)。如果我在Text1上将属性EnableViewState设置为false,它仍然会在提交时发回。这个答案解释了所有表单数据都是一直提交的: