Usuário com melhor resposta
Retornar linha selecionada no ListBox

Pergunta
-
Boa tarde pessoal!
Estou utilizando um ListBox que é populado por um Dictionary<int,string>. A tela consiste em dois Lists (selecionar opções desejadas no primeiro e passar para o list ao lado), bem simples.
listDisponiveisSelecionados = new Dictionary<int, string>(); DataTable dataTable = dsRetorno.Tables[0]; foreach (DataRow item in dataTable.Rows) { listDisponiveisSelecionados.Add(Convert.ToInt32(item.Field<decimal>("cd_setor").ToString()), item.Field<string>("ds_setor").ToString()); } listBoxDisponiveis.DataSource = listDisponiveisSelecionados; ListDisponiveisSelecionados = listDisponiveisSelecionados; listBoxDisponiveis.DataTextField = "Value"; listBoxDisponiveis.DataValueField = "Key"; listBoxDisponiveis.DataBind();
Porém, no evento OnSelectedIndexChanged do primeiro ListBox eu não consigo resgatar a linha selecionada, nem seus valores.
O retorno é nulo executando o código : listBoxDisponiveis.Items[meucontador].Selected
O fato de ser populado por um dicionário tem alguma referência? Em caso negativo, alguma ideia?
Desde já obrigada!
- Editado Aretha Lemos sexta-feira, 5 de outubro de 2012 19:18
Respostas
-
E ae tuca, conseguiu resolver o seu problema?
Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCPD
- Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:05
- Não Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:06
- Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:06
-
E ae tuca, blz?
Uma coisa para você presta atenção é não esqueçer desta validação para não carregar o seu controle novamente a cada post.
if (!IsPostBack)
{
Dictionary<int, string> listDisponiveisSelecionados = new Dictionary<int, string>();
listDisponiveisSelecionados.Add(1, "teste");
listDisponiveisSelecionados.Add(2, "teste2");
ListBox1.DataSource = listDisponiveisSelecionados;
ListBox1.DataTextField = "Value";
ListBox1.DataValueField = "Key";
ListBox1.DataBind();
}Para recuperar o valor d ListBox você pode fazer desta forma:
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var teste = ListBox1.SelectedValue;
teste = ListBox1.SelectedItem.Text;
}Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCPD
- Marcado como Resposta Harley Araujo segunda-feira, 8 de outubro de 2012 12:03
Todas as Respostas
-
E ae tuca, blz?
Uma coisa para você presta atenção é não esqueçer desta validação para não carregar o seu controle novamente a cada post.
if (!IsPostBack)
{
Dictionary<int, string> listDisponiveisSelecionados = new Dictionary<int, string>();
listDisponiveisSelecionados.Add(1, "teste");
listDisponiveisSelecionados.Add(2, "teste2");
ListBox1.DataSource = listDisponiveisSelecionados;
ListBox1.DataTextField = "Value";
ListBox1.DataValueField = "Key";
ListBox1.DataBind();
}Para recuperar o valor d ListBox você pode fazer desta forma:
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var teste = ListBox1.SelectedValue;
teste = ListBox1.SelectedItem.Text;
}Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCPD
- Marcado como Resposta Harley Araujo segunda-feira, 8 de outubro de 2012 12:03
-
E ae tuca, conseguiu resolver o seu problema?
Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCPD
- Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:05
- Não Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:06
- Marcado como Resposta Aretha Lemos segunda-feira, 8 de outubro de 2012 12:06
-