ASP.net ListView en DataPager - YouTube API

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Hallo

Ik vraag me af hoe het volgende eventueel in zijn werk kan gaan.

Normaal heb je dus een datasource, die je kan binden aan je listview control en de eventuele datapager configureert zichzelf zodanig dat je netjes kan klikken op de pagina's links/buttons.

Ik heb echter het volgende voor.

Ik ben momenteel bezig met de YouTube API. Deze is "feed oriented"; het komt erop neer dat je XML requests doet, die dan omvat worden door objecten reeds aanwezig in die API. Standaard bevat zo een feed slechts een chunk van 25 video's maximum. Je kan wel een optie instellen zodanig dat de gehele videolijst opgehaald wordt, maar die request duurt veel te lang en is dus niet bruikbaar op mijn website.

Nu het probleem: hoe kan je een listview/datapager tóch instellen dat hij paged door de volledige datasource, terwijl je maar een stukje van het totale aantal video entries voorhanden hebt? Als extra informatie in de XML feed heb je natuurlijk wel zaken als startIndex, totalResults (= totaal aantal video's in het youtube kanaal), pageSize, ... die je al dan niet zelf kan bepalen, met uitzondering van totalResults natuurlijk.

Het komt erop neer dat de datasource eigenlijk moet veranderen afhankelijk van op welke pagina je klikt op de pager.... dacht ik (?)

De alternatieve manier is natuurlijk gewoon manueel een custom geknutselde pager uitspuwen in de Response, die dan bijvoorbeeld een startIndex meegeeft in de querystring, maar dat is natuurlijk niet zo mooi.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:47

gorgi_19

Kruimeltjes zijn weer op :9

Je moet een custom paging maken; je wilt namelijk niet de gehele datasource of iedere keer ophalen of iedere keer in je viewstate stoppen.

Sowieso kan je een feed voor bijvoorbeeld voor een uur cachen en ieder uur een nieuwe feed (of feeds) ophalen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
SideShow schreef op dinsdag 02 augustus 2011 @ 08:58:
De alternatieve manier is natuurlijk gewoon manueel een custom geknutselde pager uitspuwen in de Response, die dan bijvoorbeeld een startIndex meegeeft in de querystring, maar dat is natuurlijk niet zo mooi.
ASP.NET WebForms UI controls en datasource databinding is überhaupt niet mooi. Het werkt 'lekker simpel' totdat je iets moet hebben wat nèt buiten de norm valt. Op dat moment dondert het hele boeltje in het water omdat het gewoon niet flexible / extendable opgezet is.

Schrijf liever een eigen data provider die een IEnumerable van een bepaalde viewmodel klasse uitspuugt en databind die aan je ListView. Schrijf er dan ook gelijk een deftige decorator bij die een caching schil aan kan brengen om de provider.

(Overigens; rendert de ListView UI control anno ASP.NET WebForms 4 nog steeds invalide HTML?)

Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Wel, eigenlijk wil ik het doen met de Telerik RadListView/Pager, die zal al een stuk beter zijn dacht ik, maar het principe van de paging blijft normaal hetzelfde.

Dus, ja, het zal inderdaad een eigen dataprovider of iets dergelijks worden.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:47

gorgi_19

Kruimeltjes zijn weer op :9

R4gnax schreef op dinsdag 02 augustus 2011 @ 12:47:
ASP.NET WebForms UI controls en datasource databinding is überhaupt niet mooi. Het werkt 'lekker simpel' totdat je iets moet hebben wat nèt buiten de norm valt. Op dat moment dondert het hele boeltje in het water omdat het gewoon niet flexible / extendable opgezet is.
Werkt an sich prima, mits je uitkijkt met je viewstate en geen standaard paging / sorting gaat gebruiken:P
(Overigens; rendert de ListView UI control anno ASP.NET WebForms 4 nog steeds invalide HTML?)
Daar heb je de control adapters anders voor :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
gorgi_19 schreef op dinsdag 02 augustus 2011 @ 13:14:
Werkt an sich prima, mits je uitkijkt met je viewstate en geen standaard paging / sorting gaat gebruiken:P
Dus: "Werkt an sich prima, mits je uitkijkt dat je niet buiten het afgebakende pad treedt."

Als viewstate en de standaard paging / sorting operaties niet betrouwbaar zijn en niet gebruikt zouden moeten worden; dan is er mijns inziens weinig verschil meer met een simpele IEnumerable uit een eigen provider halen en er met een <% foreach %> overheen gaan, à la ASP.NET MVC.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:47

gorgi_19

Kruimeltjes zijn weer op :9

R4gnax schreef op dinsdag 02 augustus 2011 @ 15:05:
[...]


Dus: "Werkt an sich prima, mits je uitkijkt dat je niet buiten het afgebakende pad treedt."

Als viewstate en de standaard paging / sorting operaties niet betrouwbaar zijn en niet gebruikt zouden moeten worden; dan is er mijns inziens weinig verschil meer met een simpele IEnumerable uit een eigen provider halen en er met een <% foreach %> overheen gaan, à la ASP.NET MVC.
Voor een simpel dingetje presenteren op een pagina, zonder poespas werkt het ook prima :)
Viewstate wordt bij grote sets groot, ondanks dat je maar weinig laat zien.
En met een foreach; een listview is al redelijk clean (zeker in vergelijking met datagrids)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Ik heb ooit eens een koppeling gemaakt met Youtube en ASP.net via de RssToolkit ( http://aspnetrsstoolkit.codeplex.com/ ) zit caching in en je kunt de lijst gewoon binden...
Pagina: 1