2017-02-10 96 views
0

我正在研究一個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。如果用戶選擇其他文本框,則用戶可以在下拉菜單中輸入除帳戶號外的其他文本框。

+0

你缺少ddl.databind()到底是誰? –

+0

我已經使用BindControl.ControlBinder而不是DataBind() – user7543912

+0

嘗試使用此方法並檢查它是否工作? –

回答

0

粘貼示例代碼:

設計:

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