Dica de preenchimento de Listbox e DropDown com fonte de dados
Algumas pessoas tem me questionado como adicionar items a um controle APÓS ter feito o datasource e o databind.
Normalmente usamos o seguinte código:
string[] dados = { "teste1", "teste2", "teste3", "teste4" };
lstProdutos.DataSource = dados;
lstProdutos.DataBind();
Mas se vc tentar adicionar algum item entre o DataSource e o DataBind,nada funcionará pq o DataBind irá renderizar o controle somente com a fonte.
string[] dados = { "teste1", "teste2", "teste3", "teste4" };
lstProdutos.DataSource = dados;
lstProdutos.Items.Add(new ListItem("ultimo item", "ultimo"));
lstProdutos.Items.Insert(0, "novo item");
lstProdutos.DataBind();
Mas seus problemas acabaram :) pq no ASP.NET 3.5 existe a propriedade AppendDataBoundItems que permite adicionar items mesmo antes do DataBind. Veja o exemplo:
string[] dados = { "teste1", "teste2", "teste3", "teste4" };
lstProdutos.AppendDataBoundItems = true; // NOVA PROPRIEDADE
lstProdutos.DataSource = dados;
lstProdutos.Items.Add(new ListItem("ultimo item", "ultimo"));
lstProdutos.Items.Insert(0, "novo item");
lstProdutos.DataBind();
Faça um bom uso deste código e aplique-o nos seus projetos.