Ir para conteúdo

POWERED BY:

Arquivado

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

ecf

Propriedade Visible do GridView

Recommended Posts

Bom dia!

 

O q eu quero é muito simples mais não estou conseguindo fazer...

 

Tenho em gridview...quero q quando eu abri a página ele venha invisível...daí quando eu digitar um nome no texbox e clicar no botão BUSCAR ele vai filtar todos os registros com aquele nome..e mostrar no gridview..aí sim o gridview vai ser visível...

 

Porém eu fiz assim:

 

Coloquei na propriedade do GridView: Visible=false;

 

protected void Page_Load(object sender, EventArgs e)

{

GridViewConsulta.Visible = false;

Sql = "SELECT CFTXNOMEF FROM [CF-CLIENTE FORNECEDOR] WHERE 1=1";

 

if ((Request["CFTXNOMEF"] != "") && (Request["CFTXNOMEF"] != null))

 

Sql += " AND CFTXNOMEF LIKE '" + Request["CFTXNOMEF"] + "%'";

 

 

MontaGrid(GridViewConsulta, Sql);

........

 

 

protected void Button1_Click1(object sender, EventArgs e)

{

 

if (TXTBUSCAR.Text != "")

{

 

MontaGrid(GridViewConsulta, Sql);

GridViewConsulta.Visible = true;

Response.Redirect("Cadastro.aspx?CFTXNOMEF=" + TXTBUSCAR.Text);

}

 

else RegisterStartupScript("alert", "<script>window.alert('INFORME UM NOME PARA REALIZAR A BUSCA!');</SCRIPT>");

 

}

 

 

Aí acontece o seguinte:

 

O GridView não aparece em momento nenhum...

 

Alguém pode me ajudar, porfavor?

 

Att.: ecf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você clica no botão repare que ele percorre novamente seu Page_Load, utilize a condição If Not IspostBack, ficará assim:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
  GridViewConsulta.Visible = false; 
}
Sql = "SELECT CFTXNOMEF FROM [CF-CLIENTE FORNECEDOR] WHERE 1=1";

if ((Request["CFTXNOMEF"] != "") && (Request["CFTXNOMEF"] != null))

Sql += " AND CFTXNOMEF LIKE '" + Request["CFTXNOMEF"] + "%'";


MontaGrid(GridViewConsulta, Sql);
........

Acredito que de certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você clica no botão repare que ele percorre novamente seu Page_Load, utilize a condição If Not IspostBack, ficará assim:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
  GridViewConsulta.Visible = false; 
}
Sql = "SELECT CFTXNOMEF FROM [CF-CLIENTE FORNECEDOR] WHERE 1=1";

if ((Request["CFTXNOMEF"] != "") && (Request["CFTXNOMEF"] != null))

Sql += " AND CFTXNOMEF LIKE '" + Request["CFTXNOMEF"] + "%'";


MontaGrid(GridViewConsulta, Sql);
........

Acredito que de certo...

Olá,

 

Então, tem um problema, você sabe me dizer pq o botão só funciona na segunda vez q ele é clicado?

Por isso não funcionou..coloquei um break point e percebi q como da primeira vez o botão não funciona ..intaum na segunda vez q clico nele ...entra no ! IsPostBack e o visible recebe false..daí não funciona msm...

Entaum acho q primeiro é resolver esse problema onde o botão só funciona da segunda vez...

 

você tem alguma idéia?

Obrigada.

 

Att.: ecf

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento do botão ele não deve entrar nas duas vezes, mas caso seu Redirect seja para a mesma página ele entra duas vezes no Page_Load, neste caso então o IF que eu coloquei não dará certo, o melhor seria ao invés de usar o PostBack utilizar uma condição validando o Request da mesma forma que você utilizou para montar o "AND" da sua query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento do botão ele não deve entrar nas duas vezes, mas caso seu Redirect seja para a mesma página ele entra duas vezes no Page_Load, neste caso então o IF que eu coloquei não dará certo, o melhor seria ao invés de usar o PostBack utilizar uma condição validando o Request da mesma forma que você utilizou para montar o "AND" da sua query.

Olá,

 

Eu entendi o q você disse, mas como estou aprendendo VS e C# agora, intaum............

Como devo fazer essa condiçao validando o Request?

 

Muito Obrigado;

Att.: ecf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que assim deve funcionar:

protected void Page_Load(object sender, EventArgs e){
		string Sql;
		Sql = "SELECT CFTXNOMEF FROM [CF-CLIENTE FORNECEDOR] WHERE 1=1";

		if ((Request["CFTXNOMEF"] != "") && (Request["CFTXNOMEF"] != null)) {
			GridViewConsulta.Visible = true;
			Sql += " AND CFTXNOMEF LIKE '" + Request["CFTXNOMEF"] + "%'";
		}
		else {
			GridViewConsulta.Visible = false;
		}
		MontaGrid(GridViewConsulta, Sql);
	}
	protected void Button1_Click(object sender, EventArgs e) {
		if (TXTBUSCAR.Text != "") {
			Response.Redirect("Cadastro.aspx?CFTXNOMEF=" + TXTBUSCAR.Text);
		}
		else {
			RegisterStartupScript("alert", "<script>window.alert('INFORME UM NOME PARA REALIZAR A BUSCA!');</SCRIPT>");
		}
	}

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.