Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Sort e DataGrid

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573

    Sort e DataGrid

    Ciao a tutti, ho un problema con uno script preso su aspitalia.
    Mi serviva il sort del datagrid ma non sapevo come si facesse quindi ho trovato il seguente codice (già modificato per le mie necessità):

    Sub Filtra(sender As Object, e As DataGridSortCommandEventArgs)
    ViewState("Campo")=e.SortExpression

    If ViewState("direzione") is nothing orelse ViewState("direzione")="Desc" Then
    ViewState.Add("direzione", "Asc")
    Else
    ViewState("direzione")="Desc"
    End if
    BindData()
    End Sub

    Sub BindData()
    Dim strConn as string = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("../../miodb.mdb")
    Dim Conn as New OleDbConnection(strConn)
    Conn.Open()

    Dim sqlLog = "SELECT * FROM T_Log"

    If ViewState("direzione") Is Nothing Then
    sqlLog = sqlLog & " ORDER BY '"&ViewState("campo")&"'"& ViewState("direzione")
    end if

    Dim CmdLog as new OleDbCommand (sqlLog,Conn)
    Dim ReaderLog as OleDbDataReader = CmdLog.ExecuteReader()
    dgLog.DataSource = ReaderLog
    dgLog.DataBind()
    End Sub

    Sub Page_Load()
    if Not Page.IsPostBack then BindData()
    End Sub
    Dunque, succede una cosa strana: in primo luogo già alla prima apertura della pagina i record sono in ordine sparso! non so con che criterio li tira fuori non sono ne ordinati per ip ne per data... poi se utilizzo i link per ordinare, qualcosa si muove ma anche li senza criterio e inoltre lo fa una volta sola, al primo postback e basta.

    Qualcuno riesce ad aiutarmi per farlo funzionare?

    Grazie,
    Elisa

  2. #2
    If ViewState("direzione") Is Nothing Then
    forse qui dovrebbe essere
    codice:
    If Not ViewState("direzione") Is Nothing Then
    Comunque non mi sembra una grande idea ripetere l'interrogazione al database ogni volta che l'utente cambia ordinamento della grid. Meglio sarebbe caricare i dati una volta sola in una datatable e utilizzare una dataview per cambiare ordinamento.
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    si lo so. Ci avevo provato a capire qualcosa ma non ci sono riuscita molto così ho tentato quest'altra soluzione.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.