DADOS DO GRID DESAPARECEM AO CLICAR NO BOTÃO
Tenho informações em um Grid e toda vez que eu clico em um botão para pagar esses dados, ou qualquer outro botão na página, o Grid simplesmente se esvazia e os dados desaparecem. Porque isso acontece? Como evitar isso?
Como tu está preenchendo o grid?
Olá!! Estou fazendo assim:
Mas descobri algo que pode ajudar. Tenho um check box no Item Template do Grid. Parece que isso está interferindo de alguma forma.
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings([Ô]callvox[Ô]).ConnectionString
conn.Open()
cmd.Connection = conn
cmd.CommandText = query
[ô] executa a consulta.
Dim dr As MySqlDataReader = cmd.ExecuteReader()
[ô] exibe o resutlado no Grid
If dr.HasRows Then
GridExcel.DataSource = dr
GridExcel.DataBind()
End If
dr.Close()
conn.Close()
Mas descobri algo que pode ajudar. Tenho um check box no Item Template do Grid. Parece que isso está interferindo de alguma forma.
Tu está salvando o MySqlDataReader no ViewState ou na Session?
Estou jogando diretamente no Grid. Não estou salvando em lugar nenhum
Tu está programando em Asp.Net? Se não me engano (estou fora da programação web há 5 anos), é necessário salvar o objeto que alimenta o grid no ViewState ou na Session para que os dados não se percam quando acontece um PostBack.
Jesus Cristo!!! Socorro!!! Já pesquisei 1200 pretensas soluções mas nada funciona.
Olha só o que eu estou fazendo. Primeiro inserir no GridView [Ô]GridExcel[Ô] um template field:
Para carregar os dados, monto uma query e executo assim:
Seleciono algumas linhas clicando nos CheckBox(s) e quando vou pegar as linhas selecionadas com o código abaixo, não pega nada pois os dados somem:
Gente!! Que coisa doida é essa que o Asp.net arruma???
Olha só o que eu estou fazendo. Primeiro inserir no GridView [Ô]GridExcel[Ô] um template field:
<Columns>
<asp:TemplateField HeaderText=[Ô]O.S[Ô]>
<ItemTemplate>
<asp:CheckBox ID=[Ô]CheckBox2[Ô] runat=[Ô]server[Ô] OnCheckedChanged=[Ô]CheckBox2_CheckedChanged[Ô] />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField=[Ô]ID[Ô] HeaderText=[Ô]ID[Ô] InsertVisible=[Ô]False[Ô] SortExpression=[Ô]ID[Ô] />
<asp:BoundField DataField=[Ô]Protocolo[Ô] HeaderText=[Ô]Protocolo[Ô] SortExpression=[Ô]Protocolo[Ô] />
<asp:BoundField DataField=[Ô]Telefone[Ô] HeaderText=[Ô]Telefone[Ô] SortExpression=[Ô]Telefone[Ô] />
<asp:BoundField DataField=[Ô]Operadora[Ô] HeaderText=[Ô]Operadora[Ô] SortExpression=[Ô]Operadora[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Data[Ô] HeaderText=[Ô]Data[Ô] SortExpression=[Ô]Data[Ô] />
<asp:BoundField DataField=[Ô]Hora_Inicial[Ô] HeaderText=[Ô]Hora Inicial[Ô] SortExpression=[Ô]Hora_Inicial[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Tempo_Atend[Ô] HeaderText=[Ô]Duração[Ô] SortExpression=[Ô]Tempo_Atend[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Reclamante[Ô] HeaderText=[Ô]Reclamante[Ô] SortExpression=[Ô]Reclamante[Ô] />
<asp:BoundField DataField=[Ô]Cidade[Ô] HeaderText=[Ô]Cidade[Ô] SortExpression=[Ô]Cidade[Ô] />
<asp:BoundField DataField=[Ô]Distrito[Ô] HeaderText=[Ô]Distrito[Ô] HtmlEncode=[Ô]False[Ô] SortExpression=[Ô]Distrito[Ô] />
<asp:BoundField DataField=[Ô]Bairro[Ô] HeaderText=[Ô]Bairro[Ô] SortExpression=[Ô]Bairro[Ô] />
<asp:BoundField DataField=[Ô]Localizacao_IP[Ô] HeaderText=[Ô]Rua[Ô] SortExpression=[Ô]Localizacao_IP[Ô] />
<asp:BoundField DataField=[Ô]Numero[Ô] HeaderText=[Ô]Nº Res.[Ô] SortExpression=[Ô]Numero[Ô] />
<asp:BoundField DataField=[Ô]Referencia[Ô] HeaderText=[Ô]Refer.[Ô] SortExpression=[Ô]Referencia[Ô] />
<asp:BoundField DataField=[Ô]Administradora[Ô] HeaderText=[Ô]Administradora[Ô] SortExpression=[Ô]Administradora[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Vencimento[Ô] HeaderText=[Ô]Vencim.[Ô] SortExpression=[Ô]Vencimento[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Posicao[Ô] HeaderText=[Ô]Posição[Ô] SortExpression=[Ô]Posicao[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Data_Posicao[Ô] HeaderText=[Ô]Data da Posição[Ô] SortExpression=[Ô]Data_Posicao[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Finalizacao[Ô] HeaderText=[Ô]Finaliz.[Ô] SortExpression=[Ô]Finalizacao[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Motivo[Ô] HeaderText=[Ô]Motivo[Ô] HtmlEncode=[Ô]False[Ô] SortExpression=[Ô]Motivo[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Observacao[Ô] HeaderText=[Ô]Observ.[Ô] SortExpression=[Ô]Observacao[Ô] Visible=[Ô]False[Ô] />
<asp:BoundField DataField=[Ô]Responsavel[Ô] HeaderText=[Ô]Respons.[Ô] SortExpression=[Ô]Responsavel[Ô] Visible=[Ô]False[Ô] />
<asp:CheckBoxField ReadOnly=[Ô]false[Ô] Text=[Ô]Teste[Ô] />
</Columns>
Para carregar os dados, monto uma query e executo assim:
Private Sub ExecutarPesquisa(ByVal query As String)
Dim conn As New MySqlConnection
Dim cmd As New MySqlCommand
LblQueryConsulta.Text = query
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings([Ô]callvox[Ô]).ConnectionString
conn.Open()
cmd.Connection = conn
cmd.CommandText = query
[ô] executa a consulta.
Dim dr As MySqlDataReader = cmd.ExecuteReader()
[ô] exibe o resutlado nas caixas de texto
If dr.HasRows Then
GridExcel.DataSource = dr
GridExcel.DataBind()
End If
dr.Close()
conn.Close()
LblCount.Text = GridExcel.Rows.Count
End Sub
Seleciono algumas linhas clicando nos CheckBox(s) e quando vou pegar as linhas selecionadas com o código abaixo, não pega nada pois os dados somem:
Dim Conteudo As String
Dim i As Integer
For i = 0 To GridExcel.Rows.Count - 1
Dim cb As CheckBox = GridExcel.Rows(i).FindControl([Ô]Selecionar[Ô])
If cb IsNot Nothing Then
If cb.Checked = True Then
Conteudo = Conteudo & GridExcel.Rows(i).Cells(1).Text & [Ô];[Ô]
End If
End If
Next
Gente!! Que coisa doida é essa que o Asp.net arruma???
Chamei pelo Homem (Jesus) e ele veio trazendo a solução. Simplesmente ao carregar a página, repito [Ô]ExecutarPesquisa[Ô].
RESOLVIDO.
Valeu Katchup[Ô][Ô]
RESOLVIDO.
Valeu Katchup[Ô][Ô]
Tópico encerrado , respostas não são mais permitidas