AJAX更新面板 - 操作按钮单击下拉选择

时间:2010-08-11 19:43:10

标签: c# asp.net updatepanel

晚上所有

我有以下情况。我有一系列下拉菜单,clietn可以选择。下面的代码包含在更新面板中但没有这个,按钮单击会触发一个方法来检索产品数量。例如,从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事件上实现某些内容,或者更新面板中是否有属性?

为noob问题道歉。

2 个答案:

答案 0 :(得分:1)

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

实现您想要完成的目标的常见模式:

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

答案 1 :(得分:0)

您可以随时通过代码调用您的inValidate Click事件,例如Page_Load

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