C# 基于用户输入填充/刷新下拉列表

C# 基于用户输入填充/刷新下拉列表,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我正在开发一个asp.net应用程序。我有一个客户账号的下拉列表。当我在文本框中输入客户id卡号并单击搜索按钮时,下拉列表中应填充以前针对该id卡号提供的所有账号。它工作正常,但当我添加新的身份证号码并单击“搜索”时,下拉列表仍保留以前客户的帐号。我希望每次单击“搜索”时下拉列表为空并重新填充,值为1的项(即其他项)应保持不变,列表的其余部分将动态更改 受保护的无效搜索\u单击(对象发送者,事件参数e) { ddl_accno.Items.Clear(); ddl_ackno.Items.Ad

我正在开发一个asp.net应用程序。我有一个客户账号的下拉列表。当我在文本框中输入客户id卡号并单击搜索按钮时,下拉列表中应填充以前针对该id卡号提供的所有账号。它工作正常,但当我添加新的身份证号码并单击“搜索”时,下拉列表仍保留以前客户的帐号。我希望每次单击“搜索”时下拉列表为空并重新填充,值为1的项(即其他项)应保持不变,列表的其余部分将动态更改

受保护的无效搜索\u单击(对象发送者,事件参数e)
{
ddl_accno.Items.Clear();
ddl_ackno.Items.Add(新列表项(“其他”,“0”));
字符串cnic=txt_cnic.Text;
BindControls.ControlBinder.BindDropDown(ddl_账号,UL.GetAccountNo(cnic),“账号”,“账号”);
}

帐号。

粘贴示例代码:

设计:

<asp:DropDownList ID="AssignedToDropDownList" runat="server" DataSourceID="UserLinqDataSource"
        DataTextField="UserName" DataValueField="UserId" AppendDataBoundItems="true"
        SelectedValue='<%# Bind("AssignedTo") %>'>
    </asp:DropDownList>

最后是否缺少ddl.databind()?我已经在使用BindControl.ControlBinder而不是databind()。请尝试使用此方法并检查它是否有效??还有一件事需要绑定页面_load()上的下拉列表。如果是,则在下一个后续事件中填充下拉列表,它将再次从零开始加载下拉列表。为了避免这种情况,请在每次回发(不是建议的解决方案)时填写下拉列表,或者在DDL和发送事件的控件上使用更新面板。希望你能理解
    protected void Page_Load(object sender, EventArgs e)
    {
        DDLDataBind();
    }

    private void DDLDataBind()
    {
        AssignedToDropDownList.Items.Clear();
        AssignedToDropDownList.Items.Add(new ListItem("--did not assign--", "0"));
        AssignedToDropDownList.DataBind();
    }