2011-08-18 90 views
1

目前,我有一個下降downlist如下:asp.net DROPDOWNLIST

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 

    OnSelectedIndexChanged="SelectionHasChanged" 
       DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="ID" 
       Width="214px"> 
      /asp:DropDownList> 

      asp:SqlDataSource ID="SqlDataSource1" runat="server" 
       ConnectionString="<%$ ConnectionStrings:MyDBConnectionString1 %>" 
       SelectCommand="SELECT [ID], Name], [Name] FROM [Names]"> 
      /asp:SqlDataSource> 

有兩件事情,我試圖讓列表做選擇時,無論是更新或刪除: 1)刪除刪除從DropDownList 2)在數據庫中的第一項內容是在現場發現的加載頁面時,我想它要麼是空白的,或者說「選擇」

目前我需要refress頁面刷新已刪除項目的下拉列表。

我已經在各種方法(Page_Load中,更新,刪除)和DropDownList1.DataSource = SqlDataSource1;嘗試添加DropDownList1.DataBind();(但我得到一個消息要刪除的對象(SqlDataSource1?)

我添加了一個標籤/控制研究稱爲EnableViewState="false",當我選擇另一個項目時刷新下拉列表,但是當我刪除項目時,我需要列表立即刷新。

回答

1

1.爲了從下拉列表中刪除項目,您要做的是循環下拉列表的ListItemListItem項目的值字段(DataValueField)與已更改的選擇項進行比較或刪除,如果它匹配,將其從下拉列表中刪除。例如:

private void removeItem(string ID) 
    { 
     for (int i = 0; i < dropdownList.Items.Count; i++) 
      if (dropdownList.Items[i].Value == ID) 
      { 
       dropdownList.Items.RemoveAt(i); 
       break; 
      } 
    } 

2.Just後面結合您的下拉列表,在代碼後,在Index 0添加新ListItem,它會解決您的顯示「選擇」的問題還是空白的最頂部的選擇:

dropdownList.DataBind(); 
dropdownList.Items.Insert(0, new ListItem("Select")); 
+0

感謝您的幫助,我真的很感激它。爲了確保我正確地做到了這一點,我將private void removeItem添加到我的代碼隱藏文件中,並將dropdownlist.bind和。 items.insert到我的更新和刪除方法?此外,我的ID是數據庫中的一個int,我將如何轉換字符串。當添加covert.int32(ID)它似乎不適合我。 – Nick

+0

你不需要調用dropdownlist.Bind,當你從dropdownlist中刪除一個項目..並且爲了將一個整數轉換爲字符串,你可以使用.toString()方法 – Waqas