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();" ..../>

这会导致 Text1 在 PostBack 之前被禁用。似乎 ASP.NET 不会从禁用的文本框中回发值。然而,这仅在没有 UpdatePanel 的情况下有效。当然,回发后 Text1 为空。

4

1 回答 1

-1

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

于 2013-02-28T13:16:24.400 回答