Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    effettuare querystring da link con valore a pagina con datagrid

    Salve a tutti...
    premetto che non sono informatissimo sull'argomento....

    Vi posto il mio problema, in pratica io ho due pagine, pagina1.aspx e pagina2.aspx ....

    nella pagina2.aspx ho un datagrid con dei prodotti in un datagrid collegati al database Mysql tramite il seguente codice:

    codice:
            MySqlConnection connection;
            MySqlDataAdapter adapter;
            string query;
            connection = new MySqlConnection("server=localhost; username=root; password=giovanni; database=prodotti;");
            query = "SELECT * FROM monitor ORDER BY prezzo;";
            adapter = new MySqlDataAdapter(query, connection);
            DataSet ds = new DataSet();
    
            adapter.Fill(ds, "monitor");
            myDatagrid.DataSource = ds.Tables["monitor"].DefaultView;
            myDatagrid.DataBind();
    la pagina funziona correttamente quando dalla pagina1.aspx ho un link standard <a href=pagina2.aspx>

    io vorrei però creare un secondo link dalla pagina1.aspx alla pagina2.aspx per fare in modo che nella pagina2.aspx appaiono solo alcuni componenti, lasciando però invariata la visualizzazione standard (cioè con tutti i valori) richiamata dal link standard....

    in pratica il secondo link lo sto facendo così:
    <a href='pagina2.aspx?modello=<%= ("19") %>' > però mi da errore....

    nella pagina2.aspx sto provando così:

    codice:
    string valore = Request.QueryString["modello"];
    
        if (valore != null)
        {
     // esegui la pagina normalmente con tutti i valori e senza filtri
    }
    else if (valore == 19)
    {
            MySqlConnection connection;
            MySqlDataAdapter adapter;
            string query;
            connection = new MySqlConnection("server=localhost; username=root; password=giovanni; database=prodotti;");
            query = "SELECT * FROM monitor WHERE modello=19 ORDER BY prezzo;";
            adapter = new MySqlDataAdapter(query, connection);
            DataSet ds = new DataSet();
    
            adapter.Fill(ds, "monitor");
            myDatagrid.DataSource = ds.Tables["monitor"].DefaultView;
            myDatagrid.DataBind();
    }
    se provo però ad avviare la pagina2.aspx normalmente non mi appare nessun valore....

    premetto tra l'altro che ho necessità di inserire tra l'altro altri valori, tipo 20, 21, 22 ...etc ...

    come posso fare??

    grazie a tutti....

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
    <a href="pagina2.aspx?modello=19">

  3. #3
    ciao djciko,
    si in effetti avevo provato a fare così... però mi dava la segnalazione nella pagina non trovata.... e tra l'altro mi dà errore 404 come da avviso.....
    credo anche perchè nella pagina2.aspx non c'è nessun riferimento che mi va a richiamare la cosa....

    come faccio??
    grazie

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Non credo, la querystring non c'entra con il percorso.
    Sei sicuro che pagina2.aspx sia nella stessa directory di pagina1 ?

    Pagina1, aspx:
    Pagina2, vb:
    codice:
    If request.querystring("modello") = "19" then
     ....
    End if
    PS: gli apici per l'HREF sono DOPPI, non singoli

  5. #5
    ehm ... si in effetti avevi ragione DjCiko la pagina era in un'altra directory... che stupido che sono... solo che appena clicco sul link, la pagina2.aspx non rimane filtrata pur avendo inserito il seguente codice:

    codice:
            if (Request.QueryString["dimensione"] == "19") 
            {
                MySqlConnection connection2;
                MySqlDataAdapter adapter2;
                string query2;
                connection2 = new MySqlConnection("server=localhost; username=root; password=giovanni; database=prodotti;");
                query2 = "SELECT * FROM monitor WHERE dimensione=19 ORDER BY prezzo;";
                adapter2 = new MySqlDataAdapter(query2, connection2);
                //DataSet ds = new DataSet();
    
                adapter.Fill(ds, "monitor");
                myDatagrid.DataSource = ds.Tables["monitor"].DefaultView;
                myDatagrid.DataBind();
            
    }
    come mai???

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ma non era modello ? non dimensione ...

    codice:
    string valore = Request.QueryString["modello"];

  7. #7
    si si scusa sto scrivendo sul forum una cosa, ma sul codice ne ho un'altra.....
    perdonami... cmq non è questo il problema..... ti assicuro che è tutto ok, su questo..

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    - Prova la query prima sul DB e vedi cosa ti restituisce
    - Prima di rifare il bind della griglia, fai:

    VB
    codice:
    myDatagrid.Datasource = nothing
    myDatagrid.Databind()

  9. #9
    Ciao,
    allora facendo la query al db come dimensione=19 mi restituisce i valori esatti....

    se provo a fare come hai detto tu, in pratica accade che se apro la pagina direttamente, non viene visualizzata nessun datagrid, se invece ci vado cliccando dal seguente link:

    codice:
    <a href="monitor.aspx?dimensione=19">
    mi apre la pagina con tutti i modelli differentemente dalla dimensione....

    ah dimenticavo, il codice che ho inserito in c# è questo(quello tuo era VB giusto?):
    codice:
    myDatagrid.DataSource = null;
    ci sto perdendo le speranze, pensavo fosse un pò più facile..... ma non demordo

    speriamo di riuscire....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.