我有以下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>
脚本管理器也存在,但页面仍在进行回发。事情是在其他页面中它不会发生。我尝试在更新面板中添加一个触发器,控件是文本框,但它仍然执行回发。请帮帮我。
答案 0 :(得分:0)
首先,服务器端代码不是客户端代码。 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中对它进行了测试,它确实有用。