Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

erro ao exibir label

Recommended Posts

quero exibir num label dentro de grid as mensagens abaixo, de acordo com o status tbm exibido no grid.

mas n esta exibindo msg nenhuma o q há de errado com o codigo

 

Dim lbl_observacoes As Label = CType(e.Row.FindControl("lbl_observacoes"), Label)

		If e.Row.RowType = DataControlRowType.DataRow Then
			conexao.Open()
			comando.Connection = conexao
			comando.CommandText = "Select status from tabela where ra='" & Session("ra") & "'"
			obs = comando.ExecuteReader()

			While obs.Read()
				If (e.Row.Cells(3).Text = "Não Pago") Then
					lbl_observacoes.Text = "O pagamento ainda não foi realizado"
				ElseIf (e.Row.Cells(3).Text = "Pago") Then
					lbl_observacoes.Text = "O pagamento foi realizado, seu pedido está sendo processado."
				ElseIf (e.Row.Cells(3).Text = "Pronto") Then
					lbl_observacoes.Text = "Seu documento está pronto"
				ElseIf (e.Row.Cells(3).Text = "Retirado") Then
					lbl_observacoes.Text = "Este documento já foi retirado."
				End If
			End While
		End If
		conexao.Close()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja testou esse código? O código entra dentro de algum if?

Esta dentro de algum evento da grid?

 

Abraços...

ele esta dentro do evento RowDataBound do grid

ele chega a entrar no if, mas é como se nenhuma condição fosse satisfeita, então ele exibe o label em branco;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este artigo mostra justamente o que esta fazendo: http://msdn.microsoft.com/en-us/library/aa479353.aspx

 

Abraços...

eu só quero q me ajudem a corrigir esta linha:

If (e.Row.Cells(3).Text = "Não Pago") Then
pq ja fiz isso em uma outra página e deu certo, so que o campo era date e comparava com a data de hj.

la eu fiz desta forma para comparar

If ((CType(e.Row.Cells(2).Text, DateTime) < Date.Now)) Then
agora preciso comparar com o que está escrito que seria no caso de estar escrito "Não Pago" nessa coluna ele me exibisse no label da outra coluna a mensagem: "O pagamento ainda não foi realizado" e assim por diante

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cintia nem sempre conseguimos identificar um erro somente olhando os códigos aqui no fórum, e nem sempre temos tempo de copiar o código e testar. Por isso é bem mais simples indicar um artigo que mostra justamente o que esta fazendo, ae basta você estudar seu código. Mas se desta forma não serve para você, tudo bem.

Já debugou para ver qual o valor do Text? Provavelmente como tem acento na palavra "Não" ele deve estar convertendo para HTML.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você fez uma consulta no banco para retornar o valor "status", mas não está usando em lugar algum.

Você está comparando o valor que está na grid com "Não Pagou", não deveria ser com o retorno da consulta?

Siga a sugestão do quintelab, use o Debug, vai resolver muito dos seus problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você fez uma consulta no banco para retornar o valor "status", mas não está usando em lugar algum.

Você está comparando o valor que está na grid com "Não Pagou", não deveria ser com o retorno da consulta?

Siga a sugestão do quintelab, use o Debug, vai resolver muito dos seus problemas.

se o meu codigo esta exatamente igual ao que eu postei, mas comparando com um campo do grid onde é preenchido uma data, ele funciona corretamente. só que n consigo de forma alguma comparar com um texto que esteja sendo preenchido na coluna do grid.

While obs.Read()
				If ((CType(e.Row.Cells(1).Text, DateTime) < Date.Now)) Then
					lbl_observacoes.Text = "O pagamento ainda não foi realizado"
				ElseIf ((CType(e.Row.Cells(1).Text, DateTime) >= Date.Now)) Then
					lbl_observacoes.Text = "O pagamento foi realizado, seu pedido está sendo processado."
				End If
			End While

preciso de algo assim, mas deve ter algo errado pq entra no if mas n joga nda para o label

While obs.Read()
				If ((CType(e.Row.Cells(2).Text, String) = "Não Pago")) Then
					lbl_observacoes.Text = "O pagamento ainda não foi realizado"
				ElseIf ((CType(e.Row.Cells(2).Text, String) = "Pago")) Then
					lbl_observacoes.Text = "O pagamento foi realizado, seu pedido está sendo processado."
				End If
			End While
		End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

asssim ele funcionou:

While obs.Read()
				If ((CType(e.Row.Cells(3).Text, String) = "Não Pago  ")) Then
					lbl_observacoes.Text = "O pagamento ainda não foi realizado"
				ElseIf ((CType(e.Row.Cells(3).Text, String) = "Pago	  ")) Then
					lbl_observacoes.Text = "O pagamento foi realizado, seu pedido está sendo processado."
				End If
			End While
mas preciso resolver problema com espaço e tbm com acento podem me ajudar, o problema o tempo todo era esse

OBS:Quando eu posto ele corrigi a acentuação da palavra não, mas no meu código aparece codificado o acento

 

eu verifiquei a query de insert e nela n tem nenhum espaço na hora da inserção.

segue ela: Insert into tabela (campo1,campo2,campo3,campo4,campo5,campo6,campo7) values ('B00001','00001','Serviço1','','35,50','6/4/2009 11:59:05','Não Pago')

será q é algum erro na banco? que está colocando espaço????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para remover os espaços, faça uma comparação usando Trim();

Assim:

If ((CType(e.Row.Cells(3).Text, String).Trim() = "Não Pago")) Then

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para remover os espaços, faça uma comparação usando Trim();

Assim:

If ((CType(e.Row.Cells(3).Text, String).Trim() = "Não Pago")) Then
e qto a palavra não q ele zoa toda por causa da acentuação?

no banco ela esta correta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na tela aparece desformatado?

QUando você debuga, qual o valor da expressão:

(CType(e.Row.Cells(3).Text, String).Trim()
?

 

Ela vem com ou sem acento?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na tela aparece desformatado?

QUando você debuga, qual o valor da expressão:

(CType(e.Row.Cells(3).Text, String).Trim()
?

 

Ela vem com ou sem acento?

ele vem com uns codigos estranhos, tipo codificado sabe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta chapado no seu código: "Não Pago", você pode muito bem copiar a forma com que ele esta retornando e substituir o "Não Pago".

Mas antes tente o seguinte:

If (HttpUtility.HtmlDecode((CType(e.Row.Cells(3).Text, String).Trim()) = "Não Pago")) Then

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta chapado no seu código: "Não Pago", você pode muito bem copiar a forma com que ele esta retornando e substituir o "Não Pago".

Mas antes tente o seguinte:

If (HttpUtility.HtmlDecode((CType(e.Row.Cells(3).Text, String).Trim()) = "Não Pago")) Then

Abraços...

não funcionou dessa forma

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho que testar com calma, a forma mais rápida é trocar o "Não Pago" pela forma que ele esta vindo.

 

Abraços...

por enquanto vou deixar assim, mas qdo testar poste pra mim por favor.

desde ja agradeço mais uma vez a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho que testar com calma, a forma mais rápida é trocar o "Não Pago" pela forma que ele esta vindo.

 

Abraços...

consegui descobrir como eu posso fazer pra passar corretamente???

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.