【问题标题】:AJAX Update Panel - Action button click on drop down selectionAJAX 更新面板 - 操作按钮单击下拉选择
【发布时间】:2010-08-11 19:43:09
【问题描述】:

晚上好

我有以下场景。我有一系列下拉菜单可供客户选择。下面的代码包含在更新面板中,但没有这个,按钮单击会触发检索产品数量的方法。例如,从 ddlCategory 中选择一个项目,单击 btnValidate 并且标签返回该类别中的产品数量。

我有以下更新面板的代码 - 我只是不确定如何有效地实施。

<asp:UpdatePanel ID="UpdatePanel1" runat="Server">
            <ContentTemplate>

        <asp:Label ID="lblSearchResultsStatus" runat="server" Text="Number of results found: "></asp:Label>
        <asp:Label ID="lblSearchResults1" runat="server" Text=""></asp:Label>
            <br />
        <br />
        <asp:Button ID="btnValidate" runat="server" Text="Validate Search" 
                OnClick="btnValidate_Click" Width="120px" />
                 </ContentTemplate>
            </asp:UpdatePanel>

如何连接更新面板,以便在选择下拉列表项时有效地单击按钮?

我是否必须在每个 ddlSelectedIndexChanged 事件上实现某些东西,或者更新面板中是否有一个属性可以实现?

为这个菜鸟问题道歉。

【问题讨论】:

    标签: c# asp.net updatepanel


    【解决方案1】:

    UpdatePanel 的目的是使用 AsyncPostBack 更新页面的一部分,而不是重新加载整个页面,但为了让下拉列表自动触发 AsyncPostBack,它们必须位于 UpdatePanel 上。为了更新标签,它们必须与标签在同一个 UpdatePanel 上。

    实现您想要完成的事情的常见模式:

    • 将 DDL 放在 UpdatePanel 上,并在每个 DDL 上设置 AutoPostBack="true",以便它们触发 AsyncPostBacks。
    • 在每个 DDL 上为 SelectedIndexChanged 添加一个事件处理程序(可以是相同的事件处理程序)。
    • 将您在 btnValidate_Click 中执行的任何操作移至另一个方法。
    • 从 btnValidate_Click 和 SelectedIndexChanged 事件处理程序调用新方法,以便它们都执行相同的功能。

    【讨论】:

      【解决方案2】:

      您可以随时从代码隐藏调用您的 btnValidate_Click 事件,即 Page_Load

      protected void Page_Load(object sender, EventArgs e)
      {
          btnValidate_Click(btnValidate, new EventArgs());
      }
      

      【讨论】:

      • 干杯 Marko - 我确信我可以清理这个,但是为了演示这个,太棒了。谢谢。
      • 不客气 :) 如果对您有帮助,请接受答案。谢谢!!
      • 对不起,Marko - 虽然这是我做的方式(在我的演示中强制它彻底),但我将使用 Nekno 建议的方法。但是,+1 以获得帮助并调用按钮单击操作。
      • 没有问题 - nekno 的答案是正确的方法,但您现在知道如何从代码隐藏中调用事件 :)
      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      相关资源
      最近更新 更多