Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41

    Filtrare dati attraverso una dropdownlist ed un dataview

    Ciao a tutti,
    sto facendo un archivio fotografico per categoria e ho costruito una pagina con un datagrid ed una dropdownlist sopra che contiene le categorie da visualizzare....
    Io vorrei che ad ogni cambio di valore nella drop il datagrid mi si ripopolasse con i nuovi valori....ho provato ad utilizzare un Dataview ma non ottengo niente...


    posto il codice..


    Vista_ArchivioFoto è una query nel database


    codice:
    Dim Cn As New OleDbConnection
        Dim Cmd As New OleDbCommand("Select * From Vista_ArchivioFoto", Cn)
        Dim da As New OleDbDataAdapter(Cmd)
        Dim ds As New DataSet
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            FlagMnu = 2
            Cn.ConnectionString = StrCn
    
            If Page.IsPostBack = True Then Exit Sub
    
            ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            'Popolo la combobox
            ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
            Dim CmdPopola As New OleDbCommand("Select * From Sezioni Order By ID DESC", Cn)
            Dim daPopola As New OleDbDataAdapter(CmdPopola)
            daPopola.Fill(ds, "Sezioni")
            daPopola.FillSchema(ds, SchemaType.Source, "Sezioni")
    
            drpSezioni.DataValueField = "ID"
            drpSezioni.DataTextField = "SEZIONE"
            drpSezioni.DataSource = ds.Tables("Sezioni")
            drpSezioni.DataBind()
    
            Binddatagrid()
    
        End Sub
    
        Public Sub Binddatagrid()
            da.Fill(ds, "ArchivioFotografico")
            da.FillSchema(ds, SchemaType.Source, "ArchivioFotografico")
            dtgArchivio.DataSource = ds.Tables("ArchivioFotografico")
            dtgArchivio.DataBind()
        End Sub
    
    
        Private Sub drpSezioni_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles drpSezioni.SelectedIndexChanged
    
            Dim dv As New DataView(ds.Tables("ArchivioFotografico"))
            dv.RowFilter = "SEZIONE='" & drpSezioni.SelectedItem.Text & "'" 
            dtgArchivio.DataSource = dv
            dtgArchivio.DataBind()
        End Sub
    Grazie per le risposte

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ad ogni cambio di filtro, cioè, nell'evento drpSezioni_SelectedIndexChanged, devi ricrearti il DataTable con le nuove condizioni where e poi devi fare il DataBind. Questo perchè crei il DataTable la prima volta, non lo memorizzi, e non lo recuperi le altre volte che apri la pagina; dunque non puoi crearti un DataView da un DataTable che è nothing

    oppure puoi fare:
    se prima volta
    {creo datatable; popolo griglia; memorizzo il datatable}
    altrimenti {altre eventuali istruzioni}

    quando cambi filtro, nell'evento drpSezioni_SelectedIndexChanged
    {richiamo il datatable memorizzato; creo il dataview filtrato; databind della griglia;}
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41
    scusa, ma io utilizzo un dataset dichiarato in maniera generale....
    poi al dataview passo la tabella nel dataset

    Dim dv As New DataView(ds.Tables("ArchivioFotografico"))
    e rifaccio il bind al datagrid.....
    non è la stessa cosa ?? anke se nn uso una DataTable?

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.