my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
datalist: paginazione, e numero record per riga
in
.NET Framework
>
ASP.NET 2.0
Ultimo messaggio
schoolfighter
il 10 dicembre 2007 alle 14:56
126 messaggi
dal 14 aprile 2006
salve, ho un datalist, che deve essere paginato , e deve visualizzare al massimo 4 record distribuiti su 1 sola riga, quindi se il risultato della query sono 20 record deve visualizzare una riga di 4 elementi, e con la paginazione scorrere alla pagina successiva con altri 4 elementi. ora la paginazione automaica che gridview non c'è nel datalist (chissà come mai..) qualcuno può consigliarmi un link o un tutorial per implementarla.. e poi come faccio a far vedere al massimo 4 record per pagina, senza la propietà PageIndex?
<asp:DataList GridLines="none" RepeatDirection="Horizontal" ID="foto_del_set" runat="server" >
<ItemTemplate>
<img src="autori/<%#Eval("username") %>/foto/small/<%#Eval("nome_file") %>" alt="" />
</ItemTemplate>
</asp:DataList>
Rispondi
Quoting
schoolfighter
il 10 dicembre 2007 alle 15:51
126 messaggi
dal 14 aprile 2006
, ho risolto,
per chiunque li dovesse servire paginare un datalist, vi posto il sistema che ho utilizzato:
prima si utilizza il controllo PagedDataSource nell'onload della pagina.
PagedDataSource pag=new PagedDataSource();
DataTable = conn.getRecors(query) // funzione che torna una datatable con i dati della query che popola il datalist.
pag.PageSize = 4;
pag.AllowPaging = true;
pag.DataSource = dt.DefaultView;
foto_del_set.DataSource = pag;
foto_del_set.DataBind(); // foto_del_set è il nome del datalist
poi mettete questo codice..
if (Request.QueryString["page"] != null)
{
// subtract 1 because the PagedDataSource uses a zero-based index
int intPage = (Convert.ToInt32(Request.QueryString["page"]) - 1);
// correct for a page index less than 0 or greater than the last page
if (intPage < 0) intPage = 0;
if (intPage > pag.PageCount) intPage = pag.PageCount - 1;
pag.CurrentPageIndex = intPage;
}
che valuta il parametro get della pagina,
ed infone dovete generare i link delle pagine, e per far cià ho trovato questa funzione in c#..
quindi aggiungete sotto al blocco precedente il richiamo di questa funzione
paginazione.Text = CreatePagerLinks(pag, "home_page_autore.aspx?id_foto=" + Request["id_foto"]);
pag è l'oggetto PagedDataSource, e poi li divete passare la pagina in cui sta il datalist, con eventuali parametri get
public static string CreatePagerLinks(PagedDataSource objPds, string BaseUrl)
{
StringBuilder sbPager = new StringBuilder();
sbPager.Append("altre pagine: ");
if (!objPds.IsFirstPage)
{
// first page link
sbPager.Append("<a href=\"");
sbPager.Append(BaseUrl);
sbPager.Append("\">|<</a> ");
if (objPds.CurrentPageIndex != 1)
{
// previous page link
sbPager.Append("<a href=\"");
sbPager.Append(BaseUrl);
sbPager.Append("&page=");
sbPager.Append(objPds.CurrentPageIndex.ToString());
sbPager.Append("\" alt=\"Previous Page\"><<</a> ");
}
}
// calc low and high limits for numeric links
int intLow = objPds.CurrentPageIndex - 1;
int intHigh = objPds.CurrentPageIndex + 3;
if (intLow < 1) intLow = 1;
if (intHigh > objPds.PageCount) intHigh = objPds.PageCount;
if (intHigh - intLow < 5) while ((intHigh < intLow + 4) && intHigh < objPds.PageCount) intHigh++;
if (intHigh - intLow < 5) while ((intLow > intHigh - 4) && intLow > 1) intLow--;
for (int x = intLow; x < intHigh + 1; x++)
{
// numeric links
if (x == objPds.CurrentPageIndex + 1) sbPager.Append(x.ToString() + " ");
else
{
sbPager.Append("<a href=\"");
sbPager.Append(BaseUrl);
sbPager.Append("&page=");
sbPager.Append(x.ToString());
sbPager.Append("\">");
sbPager.Append(x.ToString());
sbPager.Append("</a> ");
}
}
if (!objPds.IsLastPage)
{
if ((objPds.CurrentPageIndex + 2) != objPds.PageCount)
{
// next page link
sbPager.Append("<a href=\"");
sbPager.Append(BaseUrl);
sbPager.Append("&page=");
sbPager.Append(Convert.ToString(objPds.CurrentPageIndex + 2));
sbPager.Append("\">>></a> ");
}
// last page link
sbPager.Append("<a href=\"");
sbPager.Append(BaseUrl);
sbPager.Append("&page=");
sbPager.Append(objPds.PageCount.ToString());
sbPager.Append("\">>|</a>");
}
// conver the final links to a string and assign to labels
return sbPager.ToString();
}
Rispondi
Quoting
nostromo
il 10 dicembre 2007 alle 15:57
14.774 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
dai un occhiata allo
#651
o
#445
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
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.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
da php a classic asp
(2)
Problema con script #401 per il ridimensioanmento di immagini
(4)
sessioni asp.net 2.0
(7)
Come intercettare errori dal server e mostrarli in una pagina personalizzata?
(3)
sharepoint
Problema visualizzazione pagine
(1)
twain image scanner in sito web
(11)
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Windows 8: introduzione allo sviluppo
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Il nuovo tag time in HTML5
Metro Style App per Windows 8 con HTML e Javascript
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
Aggiungere un handler globale per le chiamate AJAX di ASP.NET MVC
Annunciate le versioni ufficiali di Visual Studio 11
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network