none
Como filtrar dados na gridview ? RRS feed

  • Pergunta

  • Senhores, não possuo grandes habilidades em programação.

    Como passo uma variavel para uma griedview para que seja selecionados dados no banco conforme a variável?

    Possuo duas páginas aspx, default.aspx e unidades.aspx.

    Página Default:

    Criei uma Listbox onde recupero  uma lista de agencias.

    Através de um FOR concateno o resultado do Listbox em uma variavel, coloco em uma sessão e envio para página unidades.aspx.


    Trecho do código:

     protected void Button1_Click(object sender, EventArgs e)
            {
                   Session.RemoveAll();
                  // Label1.Text = "";
                   String listAgencias = " ";
                
                   for (int i = 0; i < ListBox2.Items.Count; i++)
                   {
                       if ((i - ListBox2.Items.Count == -1))
                       {
                       //    Label1.Text += Convert.ToString(ListBox2.Items[i]);
                           listAgencias += "'" +Convert.ToString(ListBox2.Items[i])+"'";
                       }
                       else
                       {
                       //    Label1.Text += Convert.ToString(ListBox2.Items[i]);
                           listAgencias += "'"+Convert.ToString(ListBox2.Items[i])+"',";
                       }
                       
                   }

                Session["selecionada"] = listAgencias;
                Response.Redirect("Unidades.aspx");

    Resultado codigo acima:


    Se eu selecionei três agencias na listbox , ag01 , ag02 , ag03 a Sessao"selecionada" estara carregada assim:  'ag01','ag02','ag03'

    Na minha página Unidade.aspx criei um Gridview com o seguinte código de consulta:

       
                            SelectCommand="SELECT DISTINCT [servidor], [unidade], [espacoLivre], [data] FROM [agenciasUnidades] WHERE [servidor] in (@servidor)">
                             
                            <SelectParameters>
                                <asp:SessionParameter Name="servidor" SessionField="selecionada" Type="String" />
                            </SelectParam

    Porem em minha Gridview não aparece nada.

    Se eu edito o codigo, passando manualmente a gried view retorna os dados do banco:

    SelectCommand="SELECT DISTINCT [servidor], [unidade], [espacoLivre], [data] FROM [agenciasUnidades] WHERE [servidor] in ('ag01','ag02','ag03')">

    Como passo corretamente a sessao para o griedview retornar resultados ?










    sábado, 5 de janeiro de 2013 01:48

Respostas

  • Tenta assim!

    Aqui ele passa a lista na URL

     Response.Redirect("Unidades.aspx?Agencia="+ listAgencias.Text);

    Depois na pagina seguinte no Page_load

     String Agencia = Request.QueryString["Agencia"];
            Label3.Text = s;

    Na Pagina você deve referenciar o Controle Label como parametro para o seu Where.  

    Ou a sua variável.

     SelectCommand="SELECT DISTINCT [servidor], [unidade], [espacoLivre], [data] FROM [agenciasUnidades] WHERE [servidor] in (@servidor)">
                             
                            <SelectParameters>
                                <asp:ControlParameter ControlID="Label3" Name="servidor>
                            </SelectParam


    sábado, 5 de janeiro de 2013 10:53