【问题标题】:Populating /Refreshing Drop down list based on user input根据用户输入填充/刷新下拉列表
【发布时间】:2017-02-10 05:06:39
【问题描述】:

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

protected void Search_Click(object sender, EventArgs e)
        {
            ddl_accno.Items.Clear();
            ddl_accno.Items.Add(new ListItem("Other", "0"));

            string cnic = txt_cnic.Text;
            BindControls.ControlBinder.BindDropDown(ddl_accno, UL.GetAccountNo(cnic),"ACCOUNT_NO","ACCOUNT_NO");
          }
<td style="width:275px">
                           <label for="textfield">
                                Account no.</label>
                            <asp:DropDownList Font-Size="Small" ID="ddl_accno" 
                                runat="server" AutoPostBack = "True" 
                                 Width="319px" AppendDataBoundItems="true" 
                                onselectedindexchanged="ddl_accno_SelectedIndexChanged">
                                 <asp:ListItem Value="0" Selected="True" Text="Select Account No"></asp:ListItem>
                                 <asp:ListItem Value="1" Text="Other"></asp:ListItem>
                                </asp:DropDownList><br />

我正在使用 UL.GetAccountNO() 函数来使用查询填充 ddl。如果用户选择其他,则会显示一个文本框,用户可以在其中输入除了下拉列表中的帐号之外的帐号。

【问题讨论】:

  • 你最后错过了 ddl.databind() 吗?
  • 我已经在使用 BindControl.ControlBinder 而不是 DataBind()
  • 用这个方法试试看是否有效??
  • 还有一件事是你绑定了 page_load() 上的下拉菜单。如果是,则在下一个后续事件填充下拉列表时,它将再次从零加载下拉列表。为避免这种情况,请在每次回发时填写下拉列表(不是建议的解决方案)或使用 DDL 上的更新面板和发送事件的控件。希望你能理解

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


【解决方案1】:

粘贴示例代码:

设计:

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

代码背后:

    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();
    }

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多