C# ASP更新面板不工作

C# ASP更新面板不工作,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,我有以下ASP面板 <asp:UpdatePanel ID = "UpdatePanel1" runat = "server"> <ContentTemplate> <asp:TextBox ID="txtNumber" runat="server" ToolTip="The Assignment's Number" ValidationGroup="updateAssignment" AutoPostBack="True" on

我有以下ASP面板

<asp:UpdatePanel ID = "UpdatePanel1" runat = "server">
      <ContentTemplate>
            <asp:TextBox ID="txtNumber" runat="server" ToolTip="The Assignment's Number" ValidationGroup="updateAssignment" AutoPostBack="True" ontextchanged="txtNumber_TextChanged"></asp:TextBox>

      </ContentTemplate>
</asp:UpdatePanel>


脚本管理器也存在,但页面仍在回发。问题是在其他页面中,它没有发生。我尝试在更新面板中添加一个触发器,控件是文本框,但它仍然进行回发。请帮帮我

首先,服务器端代码不是客户端代码。textchanged事件与js onchange事件大不相同。这段代码在您失去焦点时触发。您需要在文本框上将autopostback设置为true,但将其作为触发器包括在内:

 <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" AutoPostBack="true" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
        </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="TextBox1" />
        </Triggers>
        </asp:UpdatePanel>


正如您所注意到的,仅将文本框设置为
Autopostback=true
将不起作用,在
UpdatePanel
之外,它将导致回发。但是,如果将其包装在updatepanel中,并指定AsyncPostBackTrigger,并将
ControlID
分配给相关的文本框,则它将适用于您。我刚刚在chrome和IE中测试了这个功能,它可以正常工作。

我相信您只分配了客户端
TextChanged
事件,而不是服务器端。您也可以发布您的脚本管理器吗?另外,您正在运行哪个版本的ASP.NET?@scottm:我相信客户端事件将是
onchange
@JamesJohnson,在这两种情况下,我确信它区分大小写。您是否有可能将其注册为代码隐藏中的回发控件:
ScriptManager.RegisterPostBackControl(txtNumber)