ecf 0 Denunciar post Postado Janeiro 7, 2008 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
quintelab 91 Denunciar post Postado Janeiro 7, 2008 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
ecf 0 Denunciar post Postado Janeiro 7, 2008 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
quintelab 91 Denunciar post Postado Janeiro 7, 2008 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
ecf 0 Denunciar post Postado Janeiro 7, 2008 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
quintelab 91 Denunciar post Postado Janeiro 8, 2008 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