Faccruz 0 Denunciar post Postado Março 20, 2009 Preencho um dropdownlist com dados de uma tabela em runtime para usar os dados em uma pesquisa que o cliente irá realizar, mas não está funcionando, ele sempre está pegando o primeiro item. Já tentei o setar AutoPostBack = True, no evento SelectedItemIndex e mesmo assim não consigo realizar o que eu quero. Preenchendo o DropDownList Public Sub Cidades() Dim cmdMySQL As New MySqlCommand("Select Descricao from Lojas order by Descricao;", ConMYSQL) ConMYSQL.Open() Dim drMySQL As MySqlDataReader = cmdMySQL.ExecuteReader While drMySQL.Read DropDownList1.Items.Add(drMySQL("Descricao")) End While ConMYSQL.Close() End Sub Realizando a Pesquisa Protected Sub btnLocaliza_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLocaliza.Click gvCartelinha.DataSource = Nothing gvCartelinha.DataBind() Dim daMySQL As MySqlDataAdapter Dim dsMySQL As New DataSet Dim strSQL As String = "Select * from CARTELINHA" ConMYSQL.Open() Try If rbtnList.SelectedIndex = 0 Then strSQL += " WHERE CPF like '%" & edtCPF.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else strSQL += " WHERE NotaFiscal = " & edtNF.Text & " and DescLoja LIKE '%" & DropDownList1.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") End If Call FormataGrid() gvCartelinha.AutoGenerateColumns = False gvCartelinha.DataSource = dsMySQL.Tables("CARTELINHA").DefaultView gvCartelinha.DataBind() GoTo Fim Catch ex As Exception lblAvisos.Text = "Erro: " & ex.Message GoTo Fim End Try Fim: ConMYSQL.Close() ConMYSQL = Nothing daMySQL = Nothing dsMySQL = Nothing End Sub Aproveitando tbm, como eu limpo o GridView antes de realizar uma nova pesquisa? ele está mantendo a "sujeira" da pesquisa anterior Estou usando o Framework 2.0 (motivo do servidor ser Win2k) com Visual Web Developer e banco MySQL Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Você chama o Cidades() no PageLoad? Ele está dentro do bloco de não postback? if (!this.IsPostBack) { Aqui você chamad Cidades() } Coloca aqui o evento PageLoad. Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 20, 2009 está sim Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then ''Carrega Cidades Call Cidades() End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 20, 2009 Não tem necessidade do: Call Cidades() Basta: Cidades() A forma que esta fazendo para popular o dropdownlist não é a adequada, de uma olhada neste artigo: http://www.macoratti.net/aspn_ddl.htm Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 20, 2009 Fiz igual no tutorial... mas ainda não consigo trazer o valor que o cliente selecionar Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 21, 2009 Estranho. Coloque um breakpoint no método Cidades() e clique no botão Localizar. Se ao clicar no localizar o evento Cidades() for acionado, você tem um problema, isso não deveria ocorrer. Tente trocar tambem de DropDownList1.Text para DropDownList1.SelectedItem.Text. Se o problema persistir, coloque aqui todo o código aspx e aspx.cs. Não consigo ver problema no código. Obs.: Fuja de GOTO! Depois do bloco Try/Catch, use um Finally para resetar os valores das variáveis. Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 23, 2009 Fiz novamente a página... e continua o mesmo erro! Não sei mais onde mexer. tentei tbm o ListBox (com uma linha) mas ele não me retorna nenhum valor, já coloquei eles em um Update Panel (AJAX) e nada tbm... será algum bug do Framework 2.0? Deve ser alguma coisa com o Firefox... testei no IE e funciona normal... Agora eu pergunto... tem como eu saber se o browser do cliente é Firefox ou IE? Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 23, 2009 Voce pode Fazer o seguinte - Usar o dropdown para selecionar as opcoes, - Cria um SqlDataSource e definir sua string SQL lá - No datasource selecione o botao where e nele coloque o parametro que você quer, e defina que o parametro é o DropDownList1.SelectedValue - Cria um datalist com o Data source criado por voce Q q coisa post ai E tem o serguinte, Quem interpreta o codigo VB.NET é o IIS, Logo o browser nao tem nada a ver com o erro(de VB.net)! Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 23, 2009 E tem o serguinte, Quem interpreta o codigo VB.NET é o IIS, Logo o browser nao tem nada a ver com o erro(de VB.net)! Mas como você me explica de uma hora pra outra (sem fazer alteração nenhuma) funcionar o IE e não no Firefox? O DropDownList está exibindo corretamente os valores da tabela, o problema é quando eu seleciono um item ele dá um reload e volta para o item 0 (isso no FF - Firefox, no IE fica "parado" no item escolhido) já coloquei breakpoints no Load_page verificando IsPostBack, ele não cai 2 x nessa função. Já coloquei AutoPostBack do componente, já troquei, já REFIZ todo o projeto (1 página) e mesmo assim o erro persiste, e afirmo, isso só no firefox Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 23, 2009 E tem o serguinte, Quem interpreta o codigo VB.NET é o IIS, Logo o browser nao tem nada a ver com o erro(de VB.net)! Mas como você me explica de uma hora pra outra (sem fazer alteração nenhuma) funcionar o IE e não no Firefox? O DropDownList está exibindo corretamente os valores da tabela, o problema é quando eu seleciono um item ele dá um reload e volta para o item 0 (isso no FF - Firefox, no IE fica "parado" no item escolhido) já coloquei breakpoints no Load_page verificando IsPostBack, ele não cai 2 x nessa função. Já coloquei AutoPostBack do componente, já troquei, já REFIZ todo o projeto (1 página) e mesmo assim o erro persiste, e afirmo, isso só no firefox Entao cara... Nao sei bem...Mais pode ser o javascript gerado para dar autoPostBack Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 23, 2009 nesse projeto não tem nenhum código (criado por mim) de javascript Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 23, 2009 Eu digo o JS gerado pelo asp.net quando você clica em autopostback Aoi habilitar o autopostback de um dropdownlist o asp.net cria um javascript... Compartilhar este post Link para o post Compartilhar em outros sites