【发布时间】:2014-08-04 09:45:50
【问题描述】:
在一个更新面板中有两个下拉菜单,都使用 autopostback=true 唯一的问题是,在第一次更改下拉值时,两个事件(ddlCountry_SelectedIndexChanged 和 ddlPackage_SelectedIndexChanged)都被调用了。 第一次之后,一切都会好起来的,每个事件都会在相关下拉索引发生变化时被调用。
这是我的代码:
<asp:UpdatePanel ID="updPackage" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="ddlPackage" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<div class="divManagerBoxSection">
<asp:Label CssClass="lblManagerBox" ID="Label1" runat="server" Text="کشور"></asp:Label>
<asp:DropDownList AutoPostBack="true" CssClass="ddlManagerBox ddlCountry" ID="ddlCountry"
OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged" runat="server">
<asp:ListItem Value="0" Enabled="false">انتخاب کنید</asp:ListItem>
<asp:ListItem Value="1">ایران</asp:ListItem>
<asp:ListItem Value="2">تایلند</asp:ListItem>
<asp:ListItem Value="3">ترکیه</asp:ListItem>
<asp:ListItem Value="4">روسیه</asp:ListItem>
</asp:DropDownList>
</div>
<div class="divManagerBoxSection">
<asp:Label CssClass="lblManagerBox" ID="Label2" runat="server" Text="پکیج"></asp:Label>
<asp:DropDownList CssClass="ddlManagerBox ddlPackage" ID="ddlPackage" runat="server"
AutoPostBack="true" OnSelectedIndexChanged="ddlPackage_SelectedIndexChanged">
<asp:ListItem Value="0" Enabled="false">انتخاب کنید</asp:ListItem>
<asp:ListItem Value="1">4 شب پاتایا 3 شب بانکوک</asp:ListItem>
<asp:ListItem Value="2">3 شب پوکت 3 شب سامویی</asp:ListItem>
<asp:ListItem Value="3">پکیج جدید ...</asp:ListItem>
</asp:DropDownList>
</div>
</ContentTemplate>
</asp:UpdatePanel>
和 C#:
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
ListItem lst = new ListItem("A", "0");
ddlCity1.Items.Insert(ddlCity1.Items.Count, lst);
}
protected void ddlPackage_SelectedIndexChanged(object sender, EventArgs e)
{
ListItem lst = new ListItem("B", "0");
ddlCity1.Items.Insert(ddlCity1.Items.Count, lst);
}
在 ddlCity 上更改 ddlCountry 结果的值:
一个 乙 一种 一种 一个
在 ddlCity 上更改 ddlPackage 结果的值:
一个 乙 乙 乙 乙
第一次更改哪个下拉值没有什么不同,两个事件都会运行。 任何帮助将不胜感激。
【问题讨论】:
-
我的意思是下拉值改变
-
您的更新面板是否在另一个更新面板中?如果没有,则不需要 UpdateMode="Conditional"。我会把它拿出来,将 ChildrenAsTriggers 设置为 true,删除触发器并尝试一下。
-
谢谢,我删除了条件模式,并将 ChildrenAsTriggers 设置为 True,没有任何改变,我会用一些代码改进我的问题,你可以自己测试一下
标签: asp.net asp.net-ajax updatepanel