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

    problema textbox con gridview

    Ciao a tutti, sono nuovo nell'uso dei forum, quindi spero di essere esaustivo nella spiegazione del problema.
    Ho creato una pagina web contenente due textbox e un gridview per visualizzare i risultati ri ricerca ( uso unDB ACCESS).
    Il problema è il seguente:
    se l'utente compila tutti e due i textbox il risultato viene visualizzato nel gridview, se invece si compila solo uno dei textbox nn si ottiene nessun risultato (quest'ultima condizione è quella che stò cercando di ottenere).
    Non so proprio dove mettere le mani per risolvere il problema.
    Allego tutto il listato della pagina web, spero che possa essere di aiuto a qualcuno.
    Grazie a priori

    <form id="form1" runat="server">
    <div>

    <asp:Label ID="Label1" runat="server" Text="VIa"></asp:Label>



    <asp:TextBox ID="stNome" runat="server"></asp:TextBox>


    <asp:Label ID="Label2" runat="server" Text="Civico"></asp:Label>


    <asp:TextBox ID="stCivico" runat="server"></asp:TextBox>




    <asp:Button ID="Btnricerca" runat="server" Text="cerca" />






    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataSourceID="SqlDataSource1">
    <Columns>
    <asp:BoundField DataField="NOME_VIA" HeaderText="NOME_VIA"
    SortExpression="NOME_VIA" />
    <asp:BoundField DataField="CIVICO" HeaderText="CIVICO"
    SortExpression="CIVICO" />
    </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>"
    ProviderName="<%$ ConnectionStrings:ConnectionString2.ProviderName %>"

    SelectCommand="SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE (([NOME_VIA] LIKE '%' + ? + '%') OR ([CIVICO] LIKE '%' + ? + '%'))">
    <SelectParameters>
    <asp:ControlParameter ControlID="stNome" Name="NOME_VIA" PropertyName="Text"
    Type="String" />
    <asp:ControlParameter ControlID="stCivico" Name="CIVICO" PropertyName="Text"
    Type="String" />
    </SelectParameters>
    </asp:SqlDataSource>


    </div>
    </form>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    85
    Non ho ben capito la condizione che stai cercando di ottenere.

    Però mi viene un'idea, a fiuto.
    Premetto che anche io sono ancora poco pratico.
    Dunque, potresti provare a settare la SelectCommand dal metodo che si aziona al click sul button.
    Cioè, quando clicchi sul button leggi i campi inseriti dall'utente, in base a questi ti crei la query specifica "SELECT...." inserendo nel WHERE i valori letti dalle textbox.
    Dopo di che assegna alla gridview questa selectCommand.
    Mi pare qualcosa tipo:
    GridView1.SelectCommand = "Select .... " (quella che ti sei ricavato poco fa leggendo dalle TextBox)
    Poi fai per aggiornare i valori della gridview, tipo così:
    GridView1.DataBind()

    Anche io sto lavorando con Access e Gridview, e non è molto immediato. Ho trovato dei problemi. COse che venivano immediate, come l'uso di parametri per le SqlDataSource, che per SQL Server funzionavano perfettamente, con Access mi hanno fatto faticare molto.

    Ciao

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Non ho guardato bene il problema, ma mi sento di dire questo:

    Ho due TextBox e un pulstante di submit (ricerca), più una griglia (il tipo non ha importanza)

    1) se i TextBox debbono essere sempre riempiti per la ricerca, userò i validatori. E il problema è risolto.

    2) Se non è questo il caso, ma:
    due textbox riempiti -> cerco i dati nel database e mosto nella griglia,
    uno solo riempito -> non faccio la ricerca e svuoto la griglia,

    io suggerisco di buttare lo SqlDataSource e fare tutto a mano da solo, perchè è molto più semplice. Seguendo il suggerimento di pixus:
    se hai i due textbox riempiti, costruisci l'istruzione sql e fai il DataBind della griglia, altrimenti metti il DataSource della griglia uguale a nothing e fai il databind.
    E hai risolto.

    Pietro

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.