使用带有更新面板的下拉列表发出问题 [英] Issue using dropdown lists with update panel
本文介绍了使用带有更新面板的下拉列表发出问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在父子关系中使用了2个下拉列表,并且存在于一个更新面板中但是当我从父下拉列表中选择一些数据时,如果填写第二个下拉列表,它只会为这两个下拉列表创建重复的下拉列表在页面上制作4个下拉列表。
我的代码是
I am using 2 dropdown lists in parent child relationship and are present inside one update panel but when even i select some data from parent dropdown list, insted of filling the second dropdown list it just creates duplicate dropdown lists for both the dopdown list making 4 dropdownlists on the page.
My code is
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<td valign="top">
<asp:DropDownList ID="ddlProject" runat="server" Width="105" AutoPostBack="true"
OnSelectedIndexChanged="ddlProject_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td valign="top">
<asp:DropDownList ID="ddlSubProject" runat="server" Width="105" AutoPostBack="true"
OnSelectedIndexChanged="ddlSubProject_SelectedIndexChanged">
</asp:DropDownList>
</td>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlProject" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
代码如下:
Code is as folows
protected void ddlProject_SelectedIndexChanged(object sender, EventArgs e)
{
ClsCommon.FillDropDown(ddlSubProject, BALProjectUseCases.GetAllSubProjectByProject(Convert.ToInt32(ddlProject.SelectedValue)), DropDownSelectText, "FieldName", "id");
}
}
protected void ddlSubProject_SelectedIndexChanged(object sender, EventArgs e)
{
ClsCommon.FillDropDown(ddlUseCase, BALProjectUseCases.GetAllUseCasesByProject(Convert.ToInt32(ddlSubProject.SelectedValue)), DropDownSelectText, "FieldName", "id");
}
public static void FillDropDown<T>(DropDownList ddlList, List<T> oList, string strSelectText, string strDataTextField, string strDataValueField) where T : class
{
try
{
if (oList.Count > 0)
{
ddlList.Items.Clear();
ddlList.DataSource = oList;
ddlList.DataTextField = strDataTextField;
ddlList.DataValueField = strDataValueField;
ddlList.DataBind();
if (strSelectText != "")
ddlList.Items.Insert(0, new ListItem(strSelectText, "0"));
}
else
{
ddlList.Items.Clear();
ddlList.Items.Insert(0, new ListItem(strSelectText, "0"));
}
}
推荐答案
请检查页面加载事件
并删除触发器标记
please check page load event
and delete Triggers tag
这篇关于使用带有更新面板的下拉列表发出问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文