Usuário com melhor resposta
Problema com ListBox

Pergunta
-
Boa Tarde Forum,
Tenho uma tela de cadastro na qual possuí um componente LISTBOX. Este componente está ativado para o modo de seleção multipla.
Quando o usuário realiza o cadastro, ele pode escolher N valores presente no listbox (valores que vem do banco). Quando o usuario salva este cadastro, eu salvo os valores selecionados no banco também.
Minha questão é a seguinte: Como faço para na tela de alteração aparecer no componente listbox os campos que já foram selecionados pelo usuário na hora do cadastro? Recuperar estes valores? Ou seja, tenho no listbox 10 ítens que vem do banco (por exemplo) mas o usuário quando cadastro só selecionou 3ítens, como faço para vir os 3ítens já selecionados na tela de alteração?
Obrigada!
Fernanda Lobo- Movido C. Augusto Proiete [MVP]Moderator sexta-feira, 4 de junho de 2010 21:32 Movido para o fórum apropriado (De:.NET Development - Geral)
Respostas
-
Fernanda tente desta forma seu laço For:
for (int i = 0; i < lbAux.Items.Count; i++) { this.lbCat.Items.FindByValue(lbAux.Items[i].Value).Selected = true; }
MSN: poseidonfba@hotmail.com- Marcado como Resposta Fernanda Lobo sábado, 5 de junho de 2010 18:16
Todas as Respostas
-
-
Vc pode tentar algo mais ou menso assim
public void Salvar() { var selecionados = listBox1.SelectedItems; try { // Gravar, recarregar o grid etc... } finally { foreach (var item in selecionados) { var index = listBox1.Items.IndexOf(item); if (index >= 0) listBox1.SelectedIndices.Add(index); } } }
What would Brian Boitano do ?
((2B || !2B) is Question) ? -
Olá, é C#.
O que estou fazendo atualmente é:
.....
.....
.....
//Preencho ListBox Categoria
cfBO CfBO = new cfBO();
lbCat.DataSource = CfBO.ConsultarTodosPf();
lbCat.DataTextField = "Cf_Nome";
lbCat.DataValueField = "Cf_Cod";
lbCat.DataBind();depois tenho:
//Seleciona os codigos de items que foram cadastrados e jogo num listBox auxiliar tudo.
....
....
....
fontesHasCfBO fcfBO = new fontesHasCfBO();
Fontes_has_CategoriaFonte fcf = new Fontes_has_CategoriaFonte();
lbAux.DataSource = fcfBO.ConsultarTodos(id);
lbAux.DataTextField = "Fontes_Cod_Fonte";
lbAux.DataValueField = "Categoria_Fontes_Cf_Cod";
lbAux.DataBind();
for (int i = 0; i < lbAux.Items.Count; i++)
{
this.lbCat.SelectedValue = lbAux.Items[i].Value;
}O que acontece é que, neste FOR ele traz na tela selecionado apenas UMA categoria e nao todas. Provavelmente tem algo que não estou sabendo fazer para um nao anular o outro, sei lá... mas ele me traz na tela apenas uma categoria selecionada e nao varias como tenho no BD. Quando debugo ele passa no for varias vezes, mas na hora de mostrar o resultado só mostra selecionado do ultimo que ele passou no for.
Obrigada.
Fernanda Lobo -
Fernanda tente desta forma seu laço For:
for (int i = 0; i < lbAux.Items.Count; i++) { this.lbCat.Items.FindByValue(lbAux.Items[i].Value).Selected = true; }
MSN: poseidonfba@hotmail.com- Marcado como Resposta Fernanda Lobo sábado, 5 de junho de 2010 18:16
-