Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Impaginare Datagrid

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336

    Impaginare Datagrid

    Chi mi saprebbe suggerire come fare per impaginare un datagrid.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ho già effettuato l'impaginazione con asp, ma in asp.net ancora no. Qualcuno mi saprebbe indicare uno script a riguardo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da Alex75
    Ho già effettuato l'impaginazione con asp
    bene.. cioè male..
    insomma, dimentica quello che hai fatto con asp 3, xkè asp .net nella paginazione lavora in modo diverso
    http://www.aspitalia.com/articoli/as...ginazione.aspx

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ti ringrazio del tuo aiuto, sono andato all'indirizzo consigliato.
    Ho un po' di difficoltà a comprendere la sub saltapagina:

    sub saltapagina(sender as Object , e as DataGridPageChangedEventArgs)
    MyDataGrid.CurrentPageIndex = e.NewPageIndex
    binddata()
    end sub

    Mi sapresti dare qualche chiarimento su queste due righe.

  5. #5
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Non ho guardato i link segnalato da sms ma dovrebbe essere così:

    MyDataGrid.CurrentPageIndex = e.NewPageIndex
    Richiamando questa routine imposto il nuovo indice pagina della griglia al nuovo valore passato dal pulsante o link che ha premuto l'utente.

    binddata()
    Riassocio i dati alla griglia con una funzione che la popola e fa il databind()


  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Non ho guardato i link segnalato da sms ma dovrebbe essere così:

    MyDataGrid.CurrentPageIndex = e.NewPageIndex
    Richiamando questa routine imposto il nuovo indice pagina della griglia al nuovo valore passato dal pulsante o link che ha premuto l'utente.

    binddata()
    Riassocio i dati alla griglia con una funzione che la popola e fa il databind()
    ---------------------------------------------------------------------

    Si il tuo aiuto mi è stato utilissimo, ma quello che ancora non capisco è cosa indica e.NewPageIndex . Io capisco cosi' che applico la proprietà NewPageIndex sull'oggetto 'e' che non capisco cosa sia, da dove spunta. Non so' se ho chiarito il mio dubbio.

    Sotto riporto lo script completo:


    ----------------------------------------------------------------------
    ASPataGrid id="MyDataGrid" runat="server" Width="100%"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    cellpadding=3
    cellspacing="0"
    Font-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    alternatingItemStyle-BackColor="#aaaadd"
    AllowPaging="True"
    AllowCustomPaging="false"
    PageSize="15"
    OnPageIndexChanged="saltapagina">
    < PagerStyle Mode="NextPrev" HorizontalAlign="Right" Position="top"
    ForeColor="White" BackColor="#9a5162"
    NextPageText="Next Page >>" PrevPageText=" < < Prev. Page">
    < /PagerStyle>
    < /asp:datagrid>

    Da notare le proprietà "alternatingItemStyle-BackColor", "AllowPaging", "AllowCustomPaging", "PageSize", "PagerStyle". La prima imposta il colore di fondo delle celle per le righe dispari in modo completamente automatico. "AllowPaging" imposta la paginazione del datagrid. "AllowCustomPaging" verrà esaminata in maniera approfondita con il terzo esempio, ma per questo esempio dovrà essere impostato a "False". "PageSize" è il numero di record da visualizzare per pagina. "PagerStyle" imposta la visualizzazione dei link per saltare da una pagina all'altra.
    Un'altra proprietà fondamentale per l'utilizzo della paginazione è "OnPageIndexChanged". In essa dovremo scrivere il nome della Sub che elaborerà il salto pagina.
    Questa è la subroutine che inserisce il contenuto della tabella1 nel datagrid:

    sub binddata()
    Dim DS As DataSet
    Dim MyConnection as OleDbConnection
    Dim MyCommand As OleDbDataAdapter
    Dim quanti as integer

    MyConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source="+server.mappath("database.mdb"))

    MyConnection.Open()
    MyCommand = New OleDbDataAdapter("select * from tabella1", MyConnection)
    DS = new DataSet()
    MyCommand.Fill(ds, "tabella1")
    ' in quanti viene inserito il numero di record della tabella
    quanti = ds.Tables("tabella1").Rows.Count.ToString()
    dim source as dataview=ds.Tables("tabella1").DefaultView
    MyDataGrid.DataSource=source
    MyDataGrid.DataBind()
    MyConnection.close()
    lblMessage.Text = "Pagina " & MyDataGrid.CurrentPageIndex+1 & _
    " di " & MyDataGrid.PageCount & _
    ". Record presenti=" & quanti
    End Sub

    La sub chiamata quando l'utente deciderà di passare ad altre pagine (inserito in "OnPageIndexChanged" nel datagrid), è la seguente:

    sub saltapagina(sender as Object , e as DataGridPageChangedEventArgs)
    MyDataGrid.CurrentPageIndex = e.NewPageIndex
    binddata()
    end sub

  7. #7
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    e in questo caso è una variabile DataGridPageChangedEventArgs che prende tutto quello che le passa l'oggetto Sender(nel tuo caso la griglia mydatagrid).
    e.NewPageIndex sarà quindi il numero con partenza zero della nuova pagina cliccata.
    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ti ringrazio ancora per le tue risposte, ma mi rimane un dubbio probabilmente legato al fatto che sono abituato ad operare con asp e non con asp net. Tu hai detto che cliccando su un apposito link comunico il nuovo indice di pagina e che attraverso il binddata i nuovi dati popoleranno il datagrid. Ma io non vedo un metodo get o post attraverso cui viene comunicato il nuovo indice di pagina. Allora come avviene...

    E poi da dove capisco che l'oggetto sender rappresenta il mio datagrid.

    Ti ringrazio comunque della tua cortesia.

  9. #9
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    sub saltapagina(sender as Object , e as DataGridPageChangedEventArgs)

    Dove sender è l'oggetto che richiama la routine(il datagrid)
    e invece sono i parametri passati

    Non li vedi ma vedrai sicuramente la viewstate nell'html della pagina, li dentro c'è tutto quello che esiste nel datagrid e tutto quello che c'è nella pagina(lato server).
    Il prossimo lavoro da fare sarà quello di imparare ad eliminare tutta la viewstate che non serve.
    Ciao

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da sms
    bene.. cioè male..
    insomma, dimentica quello che hai fatto con asp 3, xkè asp .net nella paginazione lavora in modo diverso
    http://www.aspitalia.com/articoli/as...ginazione.aspx
    che esageratone è che mi sono fatto un Controllo Utente per la paginazione e, adesso che è fatto, lo tratto come una scatola chiusa ma, se non lo avessi, mi prenderei i miei esempi di libreria di asp sulla paginazione, e lavorerei su quelli

    Lascia per un attimo il DataGrid e prendi una tabella normale: quale è la rivoluzione copernicana della paginazione da asp ad aspx? :master: non è che anche qui hai dei link del tipo pagina avanti, pagina indietro, prima pagina, ultima pagina, vai alla pagina n°...????

    Per quanto riguarda la domanda, come impaginare un datagrid, un consiglio è quello di non usare la paginazione predefinita, ma di usare la paginazione personalizzata, più seria, valida per una tabella in generale.
    Ciao
    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.