Combobox só mostra o indice 0, mesmo se outros estejam selecionados

22/05/2012

0

Tenho uma combobox que é preenchida com nomes de vários bancos vindo de um BD. Acontece que quando seleciono um banco qualquer, tipo(Bradesco, Itau, Cacique e etc...) após a seleção, a combo volta para o indice 0(que é a palavra TODOS). Ou seja, eu sempre tenho o valor 0 e não o indice correspondente a cada banco. Pq isso acontece?

Esse código é onde eu preencho minha combobox. É uma classe separada, só para isso, já que todas as combobox desse projeto, são preenchidas da mesma fonte.

public Boolean Execute(Usuario usuarioAtual, DropDownList dl, bool incluirTODOS)
{
Boolean retorno = false;

string Erro = ;
string strPrefixoGrupo = usuarioAtual.Grupos[0].Descricao.Substring(0, 2);

StringBuilder comandoSQL = new StringBuilder();

comandoSQL.AppendLine(SELECT );
comandoSQL.AppendLine( F.NOME EMI_C_NOME);
comandoSQL.AppendLine(,F.IDFILIALCLIENTE EMI_N_CODIGO);
comandoSQL.AppendLine(FROM );
comandoSQL.AppendLine(FILIAL F);
if (strPrefixoGrupo.CompareTo(12) >= 0)
{
incluirTODOS = false;
comandoSQL.AppendLine(JOIN USUARIOFILIAL UF ON UF.IDFILIAL = F.IDFILIAL );
comandoSQL.AppendLine(WHERE );
comandoSQL.Append(UF.IDUSUARIO = );
comandoSQL.Append(usuarioAtual.IdUsuario.ToString());
comandoSQL.AppendLine( );
}
else
{
incluirTODOS = true;
}
comandoSQL.AppendLine(ORDER BY );
comandoSQL.AppendLine(F.IDFILIALCLIENTE);

OracleConnection oracleConexao = new OracleConnection();
oracleConexao.ConnectionString = ConfigurationManager.ConnectionStrings[ConexaoPortalEC].ConnectionString;

this.comando = new OracleCommand(comandoSQL.ToString(), oracleConexao);
try
{
oracleConexao.Open();
comando.ExecuteNonQuery();

OracleDataReader dr = comando.ExecuteReader();

dl.DataSource = dr;
dl.DataTextField = EMI_C_NOME;
dl.DataValueField = EMI_N_CODIGO;
dl.DataBind();

}
catch (Exception excecao)
{
Erro = excecao.Message;
}
finally
{
oracleConexao.Close();
}

if (incluirTODOS)
{
dl.Items.Insert(0, new ListItem(TODOS, 0));
}
else
{
dl.Items.Insert(0, new ListItem(--- SELECIONE ---, -1));
}

comando.Dispose();
retorno = true;
return retorno;
}

Aqui eu atribuo na minha URL o valor que deveria ser carregada da minha combobox. Onde está Emissor e EM, esses valores vêm da Combo. Sempre vem 0 e TODOS(O primeiro item da combo)

StringBuilder sb = new StringBuilder();
sb.Append(?Mes=);
sb.Append(ucUltimosTresMeses1.SelectedValue);
sb.Append(&);
sb.Append(Emissor=);
sb.Append(cboEmissor.Text);
sb.Append(&);
sb.Append(EM=);
sb.Append(cboEmissor.SelectedItem.Text.ToString());

if (ucUltimosTresMeses1.SelectedIndex >= 0) // Não selecionado é -1
{
// Substituir Request.Url.LocalPath pelo caminho do Aspx destino
Response.Redirect(ComparativoDisponibilidadeEmissorGrafico.aspx + sb.ToString());
}

Seto essa variável(emissor) para ela carregar a minha legenda, que é o que me interessa nesse momento.
emissor = Request.QueryString[EM].ToString();
Pjava

Pjava

Responder

Posts

22/05/2012

Joel Rodrigues

A propriedade AutoPostBack do combo está true?
Responder

22/05/2012

Pjava

Eu fiz isso e resolveu. Parece perseguição, mas fiquei mais de uma hora naquela, posto ou não. Quando postei, me veio a luz. Não estou postando nada sem pesquisa, mas parece que a solução vem quando faço meu post. Passe quase ou mais de uma hora e nada de resposta. Postei e veio. A solução foi
No Page_Load da página chamadora fiz:?

if(Page.PostBack) return;

Isso funcionou.
Responder

22/05/2012

Joel Rodrigues

Aleluia então rsrsrs. Importante é que o problema foi resolvido.
Boa sorte aí.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar