2011-08-18 86 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