Ir para conteúdo

Arquivado

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

cintiadel

[Resolvido] bloquear opcao do raddionbuttonlist

Recommended Posts

tenho uma pagina de solicitações, onde tenho um raddionbuttonlist que é populado através de um sqldatasource.

onde ela deve fazer um verificaçao pra ver se o documento ja foi solicitado e se está pago, caso já esteja pago ele não deve exibir a opção ou bloquear a mesma para que não ocorra de pedir o mesmo documento.

minha pergunta é : qual a melhor forma de fazer isso bloquear a opcao no raddionbuttonlist ou que não exiba a opcao? e como fazer isso?

desde ja grata

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar o evento DataBound que ocorre depois que o SqlDataSource preencheu o RadioButtonList.

foreach (ListItem item in this.radioButtonList.Items)
{
	//Se o documento ja existe faz a linha de baixo
	item.Enabled = false;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar o evento DataBound que ocorre depois que o SqlDataSource preencheu o RadioButtonList.

foreach (ListItem item in this.radioButtonList.Items)
{
	//Se o documento ja existe faz a linha de baixo
	item.Enabled = false;
}
meu codigo é em vb, eu converti, mas ele tah bloqueando todas as opções.

 

Protected Sub rbl_protocolo_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbl_protocolo.DataBound

		Dim conexao As New Data.SqlClient.SqlConnection("conexao")
		Dim comando As New Data.SqlClient.SqlCommand
		Dim req As Data.SqlClient.SqlDataReader
		Dim vQuant As Integer = 0

		conexao.Open()
		comando.Connection = conexao
		comando.CommandText = "Select count(desc_serv) from tabela where desc_serv='" & Session("servico") & "' and status='Pago'"
		req = comando.ExecuteReader()

		If (req.Read) Then
			vQuant = CInt(req.Item(0).ToString())
		End If

		If (vQuant = 0) Then
			Dim item As ListItem
			For Each item In Me.rbl_protocolo.Items
				'Se o documento ja existe faz a linha de baixo
				item.Enabled = False
			Next item
		End If
	End Sub

preciso q ele bloqueie so o item retornado pelo select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que fazer a consulta para cada item do RadioButtonList, verificar o que você precisa verificar e se for verdadeira sua condição, você bloqueia o item usando: o

item.Enabled = False

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que fazer a consulta para cada item do RadioButtonList, verificar o que você precisa verificar e se for verdadeira sua condição, você bloqueia o item usando: o

item.Enabled = False
o meu select vai verificar se a opcao selecionada atende as condições, ou seja se existe algo no banco dentro daquela condição de busca.

se houver quero q ele bloquei esse serviço no raddionbuttonlist q atendeu a essa condição.

n sei como fazer? como bloquear somente o item e nao o raddionbuttonlist todo????

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é a mesma que eu postei no primeiro post. Veja o comentário.

foreach (ListItem item in this.radioButtonList.Items)
{
	//Aqui você faz a consulta e ve se o documento atual (variavel item) atende as condições, se sim executa:
	{
		item.Enabled = false;
	}
	//Se não atender, não faz nada, assim o item fica habilitado.
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é a mesma que eu postei no primeiro post. Veja o comentário.

foreach (ListItem item in this.radioButtonList.Items)
{
	//Aqui você faz a consulta e ve se o documento atual (variavel item) atende as condições, se sim executa:
	{
		item.Enabled = false;
	}
	//Se não atender, não faz nada, assim o item fica habilitado.
}
o que eu jogo na variavel item?

ainda tah bloqueando tudo

Dim item As ListItem
		For Each item In Me.rbl_protocolo.Items
			'Aqui você faz a consulta e ve se o documento atual (variavel item) atende as condições, se sim executa:
			conexao.Open()
			comando.Connection = conexao
			comando.CommandText = "Select count(desc_serv) from tabela1 where ra='" & Session("ra") & "' and desc_serv='" & Session("servico") & "' and status='Pago'"
			req = comando.ExecuteReader()
			conexao.Close()
			If (True) Then
				item.Enabled = False
			End If
		Next item 'Se não atender, não faz nada, assim o item fica habilitado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tem a variavel item, ela está definida dentro do For Each.

Não consigo te ajudar pois não sei as regras de negócio do seu sistema.

Mas a idéia é que para cada item do radiobutton você vá no banco e procure as informaçoes que você quer, se estiver de uma maneira, você habilita, senão desabilita.

 

If (True) Then
	item.Enabled = False
End If
Isso aqiu está desabilitando tudo, você precisa trocar o True para uma condição conforme as regras do seu sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tem a variavel item, ela está definida dentro do For Each.

Não consigo te ajudar pois não sei as regras de negócio do seu sistema.

Mas a idéia é que para cada item do radiobutton você vá no banco e procure as informaçoes que você quer, se estiver de uma maneira, você habilita, senão desabilita.

 

If (True) Then
	item.Enabled = False
End If
Isso aqiu está desabilitando tudo, você precisa trocar o True para uma condição conforme as regras do seu sistema.

ai desculpe a regra é q se o serviço escolhido ja foi requisitado e está pago ele desabilita a opcao, para que n seja pedido duas vezes.

so dar uma olhada no select, por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tem a variavel item, ela está definida dentro do For Each.

Não consigo te ajudar pois não sei as regras de negócio do seu sistema.

Mas a idéia é que para cada item do radiobutton você vá no banco e procure as informaçoes que você quer, se estiver de uma maneira, você habilita, senão desabilita.

 

If (True) Then
	item.Enabled = False
End If
Isso aqiu está desabilitando tudo, você precisa trocar o True para uma condição conforme as regras do seu sistema.

consegui fazer com q funcionasse, mas pintou um outro problema.

o meu raddiobuttonlist mostra tanto a descricao do serviço quanto o valor, sao dois campos concatenados no select, se eu deixo so a descricao ele busca e bloqueia como eu quero, mas se deixo com o valor ai n da certo tem como eu fazer isso pelo selectedvalue? se sim, como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O certo é sempre usar apenas o valor nas consultas, descrição é algo meramente descritivo. Se na sua base de dados você está gravando a descrição ao invés do valor, sua modelagem está errado.

De qualquer forma, você pode fazer um tratamento de strings, se na tela está mostrando no formato:

{valor} - {descrição}

Você pode usar substring apartir do primeiro hifen e pegar apenas a descrição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O certo é sempre usar apenas o valor nas consultas, descrição é algo meramente descritivo. Se na sua base de dados você está gravando a descrição ao invés do valor, sua modelagem está errado.

De qualquer forma, você pode fazer um tratamento de strings, se na tela está mostrando no formato:

{valor} - {descrição}

Você pode usar substring apartir do primeiro hifen e pegar apenas a descrição.

o valor é o valor em reais do serviço

como ficaria com o substring?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O certo é sempre usar apenas o valor nas consultas, descrição é algo meramente descritivo. Se na sua base de dados você está gravando a descrição ao invés do valor, sua modelagem está errado.

De qualquer forma, você pode fazer um tratamento de strings, se na tela está mostrando no formato:

{valor} - {descrição}

Você pode usar substring apartir do primeiro hifen e pegar apenas a descrição.

fiz o count pegando o id do serviço e funcionou

obrigada

tópico resolvido

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.