如果我有三个下拉列表:
从第一个选择时填充的第二个
当我从第二个选择时,第三个填充。
我将第二个和第三个放在更新面板中以进行部分回发,但我注意到当我从第二个选择时,第三个不会填充!!
如何解决这个问题?
<asp:DropDownList ID="drp_camp" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_camp_SelectedIndexChanged" Width="300px">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="drp_fac" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_fac_SelectedIndexChanged"
Width="300px">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rVal_fac" runat="server" ControlToValidate="drp_fac"
ErrorMessage="!" InitialValue="-1" ValidationGroup="G1"></asp:RequiredFieldValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="drp_camp" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:DropDownList ID="drp_dep" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_dep_SelectedIndexChanged"
Width="300px">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rVal_dep" runat="server" ControlToValidate="drp_dep"
ErrorMessage="!" InitialValue="-1" ValidationGroup="G1"></asp:RequiredFieldValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="drp_fac" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
答案 0 :(得分:1)
尝试使用级联下拉列表。这非常好,可以解决您的问题。 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx
答案 1 :(得分:1)
您可以将所有三个DropDownLists放在一个UpdatePanel控件中,不需要尝试处理每个控件的部分回发。
您可以使用以下内容:
<asp:UpdatePanel ID="upMain" runat="server">
<ContentTemplate>
<asp:DropDownList ID="drp_camp" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_camp_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="drp_fac" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_fac_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="drp_dep" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_dep_SelectedIndexChanged">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
注意:您需要重新添加RequiredFieldValidators。