19 messaggi dal 05 luglio 2006
Non sono molto esperto quindi mi scuso per le eventuali banalità o imprecisioni.

Devo popolare una GridView mediante una SqlDatasource dinamica (la WHERE è costruita in base ai valori inseriti in due textbox) e, successivamente, devo poter modificare i dati visualizzati nella gridview.

Il codice associato al click del pulsante "CERCA" è il seguente:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim strsql As String
        strsql = "SELECT * FROM [XSS-Sistemi3]"
        If (TextBox2.Text <> "" Or TextBox8.Text <> "") Then

            strsql = strsql & " WHERE "

            If TextBox2.Text <> "" Then
                If TextBox8.Text <> "" Then
                    strsql = ""
                Else
                    strsql = strsql & " ([Hostname] like @hostname + '%') ORDER BY hostname"
                End If
            Else
                strsql = strsql & " ([IP] like @IP + '%') ORDER BY hostname"
            End If
        Else
            strsql = strsql & " ORDER BY hostname"
        End If

        SqlDataSource5.SelectCommand = strsql
    End Sub


La visualizzazione e il filtro funzionano correttamente ma, dopo aver visualizzato i dati, se premo il CommanField "modifica" della GridView, la GridView sparisce.

Ho provato con una sola textbox (quindi con una WHERE statica nella query) e funziona tutto.

Grazie
Modificato da Punky il 19 novembre 2008 16.21 -
devi reimpostare la Query ad ogni PostBack, altrimenti non viene mantenuta traccia delle modifiche che fai alla query

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
19 messaggi dal 05 luglio 2006
Come si fa ? Nel "Page load" devo rieseguire il codice associato al pulsante ?
esatto, salvati da qualche parte, ad esempio nel ViewState che stai usando una query filtrata

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
19 messaggi dal 05 luglio 2006
Non mi è del tutto chiaro, ma è colpa della mia ignoranza.
Provo a leggere qualcosa a riguardo.

Grazie
Carmine
cosa non ti è chiaro? non ce nulla di male a non saper fare alcune cose specialmente all'inizio.

provo anche io a spiegarmi meglio. al click esegui delle azioni, racchiudi queste azioni in un metodo/funzione, ti salvi nel ViewState un valore che india che hai eseguito una query filtrata.

al PageLoad verifichi l'esistenza di questo valore e riesegui il metodo che imposta la query filtrata

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
19 messaggi dal 05 luglio 2006
La teoria è chiara ma praticamente non so come si fanno alcune azioni:

racchiudi queste azioni in un metodo/funzione

Credo di averlo fatto creando la funzione associata al click del pulsante

ti salvi nel ViewState un valore che india che hai eseguito una query filtrata

Come si fa ? Si valorizza una variabile di sistema ?


al PageLoad verifichi l'esistenza di questo valore e riesegui il metodo che imposta la query filtrata


Se ho capito, nella parte di codice identificata come
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

dovrei testare la variabile (?) valorizzata in precedenza ed eventualmente richiamo la funzione creata al primo punto
allora per prima cosa devi prendere questo codice

Dim strsql As String 
        strsql = "SELECT * FROM [XSS-Sistemi3]" 
        If (TextBox2.Text <> "" Or TextBox8.Text <> "") Then 

            strsql = strsql & " WHERE " 

            If TextBox2.Text <> "" Then 
                If TextBox8.Text <> "" Then 
                    strsql = "" 
                Else 
                    strsql = strsql & " ([Hostname] like @hostname + '%') ORDER BY hostname" 
                End If 
            Else 
                strsql = strsql & " ([IP] like @IP + '%') ORDER BY hostname" 
            End If 
        Else 
            strsql = strsql & " ORDER BY hostname" 
        End If 

        SqlDataSource5.SelectCommand = strsql


e inserirmo in una funzione, funzione che richiamerai anche nella funzione associata al click del pulsante

per salvare un valore nel ViewState è sufficente fare

Me.ViewState("mioCampo") = true

per recuperarlo

Dim _bool As Boolean = CBool(Me.ViewState("mioCampo"))

dopo controlli il valore di _bool e riesegui la funzione che crea la query

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.