0

这是一种已知的行为吗?如果它是我如何让它工作?

  • 我有 2 个更新面板。每个内部都有一个 DropDownList 控件。

  • 我有 1 个按钮来设置(绑定)第一个 DropDownList。这行得通。

  • 当我更改第一个 DropDownList 时,它应该更新第二个 DropDownList。

  • 出于某种原因,第二个下拉列表永远不会更新。

这是伪代码:

第一次更新面板和下拉列表:

<asp:Button ID="btnSet" runat="server"></asp:Button>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server" 
                        onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
                </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="btnSet" EventName="Click" />
                    </Triggers>
            </asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
                    <ContentTemplate>
                        <asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>
                    </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
                        </Triggers>
                </asp:UpdatePanel>

代码背后:

 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        BindSecondDropDownList();
    }

帮我解决这个问题。

4

2 回答 2

1

您可以将它们全部合并到一个更新面板中,不要忘记 btnSet.OnClick 事件

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnSet" runat="server"></asp:Button>
        <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
            AutoPostBack="true">
        </asp:DropDownList>
        <asp:DropDownList ID="DropDownList2" runat="server">
        </asp:DropDownList>
    </ContentTemplate>
</asp:UpdatePanel>
于 2013-05-13T17:24:59.993 回答
0

这被称为级联下拉列表,并且有一种已知的技术,以及由 ASP.Net Ajax 提供的控件......

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

于 2013-05-13T15:31:31.370 回答