Dlaczego lista rozwijana nie pokazuje najpierw mojego pustego elementu? Oto co mam
drpList.Items.Add(New ListItem("", ""))
With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With
Edytuj ~ Jestem powiązany z listą Generig, czy to może być winowajca?
asp.net
drop-down-menu
Saif Khan
źródło
źródło
Odpowiedzi:
Po powiązaniu z danymi:
drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty)); drpList.SelectedIndex = 0;
źródło
Możesz użyć,
AppendDataBoundItems=true
aby łatwo dodać:<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"><br/> <asp:ListItem Text="" Value="" /><br/> </asp:DropDownList>
źródło
Wiązanie z danymi ma miejsce po dodaniu pustego elementu listy i zastępuje to, co już istnieje, należy dodać pusty element na początek listy ze swojego kontrolera lub dodać go po powiązaniu z danymi.
EDYTOWAĆ:
Po wygooglowaniu tego szybko, jak w ASP.Net 2.0, istnieje prawdziwa właściwość „AppendDataBoundItems”, którą można ustawić na… dołączanie elementów z danymi.
szczegóły patrz
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 lub
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx
źródło
Myślę, że lepszym sposobem jest najpierw wstawienie pustego elementu, a następnie powiązanie danych, tak jak robiłeś. Jednak musisz ustawić
AppendDataBoundItems
właściwość kontrolki listy.Używamy następującej metody, aby powiązać dowolne źródło danych z dowolną kontrolką listy ...
public static void BindList(ListControl list, IEnumerable datasource, string valueName, string textName) { list.Items.Clear(); list.Items.Add("", ""); list.AppendDataBoundItems = true; list.DataValueField = valueName; list.DataTextField = textName; list.DataSource = datasource; list.DataBind(); }
źródło
Podobnie jak „Whisk” Said, sztuczka tkwi we właściwości „AppendDataBoundItems”
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DropDownList1.AppendDataBoundItems = true; DropDownList1.Items.Insert(0, new ListItem(String.Empty, String.Empty)); DropDownList1.SelectedIndex = 0; } }
Dzięki „Trzepaczka”
źródło
Wykonaj powiązanie danych, a następnie dodaj następujące elementy:
Dim liFirst As New ListItem("", "") drpList.Items.Insert(0, liFirst)
źródło
wygląda na to, że dodajesz pustą pozycję, a następnie powiązanie z danymi, co spowoduje opróżnienie listy; spróbuj wstawić pusty element po powiązaniu danych
źródło
prosty
w końcu
ddlProducer.Items.Insert(0, "");
źródło
ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";
Cách 1:
ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;
ddlCategory.DataBind();
Cách 2:
ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));
(Testowane OK)
źródło
Możesz również mieć połączenie pustego zaznaczenia z zaznaczeniem, które ma zawartość:
select '' value, '' name union select value, name from mytable
źródło