Publikoval Michal Kočí dňa 26.7.2007 o 19:41 v kategórii .Net
GridView v ASP.NET 2.0 podporuje stránkovanie, čo je veľmi príjemná vlastnosť, bohužial ak sa použije to základné vstavané, potom aj tak vždy dojde k dotiahnutiu všetkých záznamov z databázy. Ak máte záznamom málo, potom sa nič tragické nedeje a toto riešenie stačí. Pokiaľ však záznamov máte veľa a nedokážete ich rozumne vyfiltrovať, potom sa rozhodne hodí stránkovanie pomocou vlastných uložených procedúr, ktoré Vám vracajú dáta po stránkach, napríklad po 20 záznamov.
Ak teda používate GridView a ObjectDataSource, ktorý napájate na objekt biznis logiky, potom dosiahnuť vlastné stránkovanie nie je vôbec zložité a to dokonca aj vrátane sortovania záznamov (tiež na strane databázového servera). Ak chcete vediet ako na to, rozhodne si prečítajte nasledovné dva články, ktoré to popisujú naozaj zrozumiteľne a prehľadne:
Ja by som články ešte trochu doplnil. Články vychádzajú z toho, že procedúra, ktorá Vám vracia dáta ako aj procedúra ktorá Vám vracia počet dát neobsahujú žiadne parametre (okrem tých, ktoré pridávate na získanie stránky - poradie prvého záznamu a počet záznamov). V takom prípade je metóda, ktorá vracia počet záznamov tiež bezparametrická.
Ak však Vaša procedúra ktorá vracia dáta nejaký parameter očakáva, potom tento parameter musí obsahovať aj metóda ktorá vracia počet záznamov. Je to možno logické, ale v článku to spomenuté nie je, preto to spomínam, lebo to mám odskúšané a funguje to. Jediné na čo si potom dajte pozor, aby ste dodržali malé a veľké písmená v názve tohto parametru v metóde objektu z biznis logiky. Ja tento parameter plním v udalosti selecting takto:
e.InputParameters["SurgeryID"] = surgeryId;
Kým pri metóde, ktorá Vám vracia dáta, tu na veľkosti nezáleží, ale pri metóde, ktorá vracia počet záznamov z nejakého dôvodu áno.
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.