Chi mi saprebbe suggerire come fare per impaginare un datagrid.
Chi mi saprebbe suggerire come fare per impaginare un datagrid.
Ho già effettuato l'impaginazione con asp, ma in asp.net ancora no. Qualcuno mi saprebbe indicare uno script a riguardo.
bene.. cioè male..Originariamente inviato da Alex75
Ho già effettuato l'impaginazione con asp
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
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.
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()
![]()
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
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
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.
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
che esageratoneOriginariamente 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 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