【问题标题】:ASP Update Panel Not WorkingASP 更新面板不工作
【发布时间】:2012-05-12 02:39:49
【问题描述】:

我有以下 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事件,而不是服务器端。
  • 您也可以发布您的脚本管理器吗?另外,您运行的是什么版本的 ASP.NET?
  • @scottm:我相信客户端事件会是onchange
  • @JamesJohnson 无论哪种情况,我都确定它是区分大小写的。
  • 您是否有机会在代码隐藏中将其注册为回发控件:ScriptManager.RegisterPostBackControl(txtNumber);

标签: c# asp.net updatepanel


【解决方案1】:

首先,服务器端代码不是客户端代码。 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 之外它将导致回发。但是,如果将其包装在更新面板上并指定 AsyncPostBackTrigger 并将ControlID 分配给相关文本框,它将为您工作。我刚刚在 chrome 和 IE 中对此进行了测试,并且可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多