Por que o menu suspenso não mostra meu item em branco primeiro? Aqui está o que eu tenho
drpList.Items.Add(New ListItem("", ""))
With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With
Editar ~ Estou vinculando a uma lista Generig, este poderia ser o culpado?
asp.net
drop-down-menu
Saif Khan
fonte
fonte
Respostas:
Após sua ligação de dados:
fonte
Você pode usar
AppendDataBoundItems=true
para adicionar facilmente:fonte
A ligação de dados ocorre depois que você adiciona o item da lista em branco e substitui o que já existe, você precisa adicionar o item em branco ao início da lista do seu controlador ou adicioná-lo após a ligação de dados.
EDITAR:
Depois de pesquisar isso rapidamente no ASP.Net 2.0, há uma propriedade verdadeira "AppendDataBoundItems" que você pode definir para ... acrescentar os itens do banco de dados.
para detalhes veja
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 ou
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx
fonte
Eu acho que a melhor maneira é inserir o item em branco primeiro e depois vincular os dados exatamente como você está fazendo. No entanto, você precisa definir a
AppendDataBoundItems
propriedade do controle de lista.Usamos o seguinte método para vincular qualquer fonte de dados a qualquer controle de lista ...
fonte
Como "Whisk" Said, o truque está na propriedade "AppendDataBoundItems"
Obrigado "Whisk"
fonte
Faça a ligação de dados e adicione o seguinte:
fonte
parece que você está adicionando um item em branco e depois vinculando os dados, o que esvaziaria a lista; tente inserir o item em branco após a ligação de dados
fonte
simples
Finalmente
fonte
ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";
Capítulo 1:
ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;
ddlCategory.DataBind();
Capítulo 2:
ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));
(OK testado)
fonte
Você também pode ter uma união da seleção em branco com a seleção que possui conteúdo:
fonte