ASP.NET绑定下拉项目删除

时间:2014-06-04 12:23:47

标签: c# asp.net drop-down-menu

我有2个下拉列表,两个都绑定了。第一个下拉列表在加载时填充。第二个下拉列表取决于在第一个中进行的选择,因此在第一个选择中进行选择之前不会填充它。我需要从第二个列表中删除一个项目,如果它出现但是当我将下面的代码放入第一个下拉列表的onchange事件时,它不起作用,因为列表没有时间填充。

callerTypeDD.Items.Remove(callerTypeDD.Items.FindByText("Member"));

任何帮助表示感谢。

2 个答案:

答案 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