我有2个下拉列表,两个都绑定了。第一个下拉列表在加载时填充。第二个下拉列表取决于在第一个中进行的选择,因此在第一个选择中进行选择之前不会填充它。我需要从第二个列表中删除一个项目,如果它出现但是当我将下面的代码放入第一个下拉列表的onchange事件时,它不起作用,因为列表没有时间填充。
callerTypeDD.Items.Remove(callerTypeDD.Items.FindByText("Member"));
任何帮助表示感谢。
答案 0 :(得分:2)
感谢大家的回复。其实找到了一个非常简单的解决方案如果我们在第一个下拉列表(skillDD)的onChange事件中数据化第二个下拉列表(callerTypeDD),然后搜索并删除我们需要排除的值,它将起作用...
protected void skillDD_SelectedIndexChanged(object sender, EventArgs e)
{
filterPanelCallerType.Visible = true;
skillDD.Enabled = false;
callerTypeDD.DataBind();
//remove Employer/Broker, Member option. The select statement has been set up to display these lines if either are selected.
callerTypeDD.Items.Remove(callerTypeDD.Items.FindByText("Employer/Broker, Member"));
}
答案 1 :(得分:1)
使用onload事件,例如
第一次下拉
<asp:DropDownList runat="server" ID="ddl1" AutoPostBack="true" DataTextField="Field"
DataValueField="ID" OnSelectedIndexChanged="someFunction" AppendDataBoundItems="true" />
第二次下拉
<asp:DropDownList runat="server" ID="callerTypeDD" AutoPostBack="true" DataTextField="Field"
DataValueField="ID" OnSelectedIndexChanged="someFunction" AppendDataBoundItems="true" onLoad="someOtherFunction"/>
然后在.cs文件中为该onload创建一个方法
protected void someOtherFunction(object sender, EventArgs e)
{
callerTypeDD.Items.Remove(callerTypeDD.Items.FindByText("Member"));
}
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.onload(v=vs.90).ASPX