osowts
le BN)
——
Principal
ise
Laue,
Gomcar
Archive del blog
» 2012 90)
yor am
Psonic 4
Poa.
septembre)
boom
> jot)
hoon
‘romana Ae
> eve 0
» 201007
» 200974)
> 2008 0)
» 200703)
» 2006.09)
Top semanal
aioe Pomme
4 ApsET ave z dunce
arabes esrb
selections
(+ Suu acorens
‘euacou Fite
us cua cates
semua es
Categorias
anion)
saan (16)
aoost (47)
sana (19)
as (1)
ausseata (17)
Webride» MVE 3, paso a paso (y I | arabe not found
el blog de José M. Aguilar | tnicio |Elausor|Contctar
q
WebGrid en MVC 3, paso a paso (y Il)
Dias atréscomentabamas por aqui ime tilzar eLnelzer WebGrid de AVC2 para crear ASB
res e datos, prtenés de un ejemplo muy sencilo, azenas un par e ness de
cédigo,e introguciendosucesvas mejors hasta lear aun interfaz bastante
‘sceplabie para manejrconjuntos de dates con paginacn,arderacn, ycolmnas
persoraizaas.
MVC
ST ener
a
freee [Brome a-o0
WebGrid Demo
Personas
‘Si embargo, también comentabamos qu a pasmesasimpetad cn aque pediaras poner en marcha un ged
‘completo tenia su cste: por defecte, WebGrid necesita daponer de una copiaen memeria del conjunt®
‘complete de datos sobre el que acta. Si, completo "0.
Es dec, s tenemos un ili de fas de nuestra base de datos y queremos mostaas en un end concrete y
er piinas,dabemossurnstrar a WebGrid una clecién con ello de entidacesraterazadas en
‘memoria elneiber as orcera segin eciterla ative en ese momento, cantar el tatalde elementos,
‘auld as niginasnecesaras para mostraios en funcion de nimare de elementos por pga cefndos,
‘blend el subconjunto de instancis camespondientes aia pigina actual, Tas alo, generar lst y el
‘mecanismo de paginacion cue pocemos ver en supe.
‘bviamente, el impact ene rendimiento de nuestro sistema puede ser tere. La materitizacin de
‘entidades noes un proceso pido, come tampoce oes a erderacn eh memoria cuando enimere de
lerentos es important. Yl peor es que elprocediniento completo se repite para cada peticiny usuario
‘anectado, lo que hace que uz os mecanisms depaginacin yordenacén por defecto no sea una buen
idea a mayoria de as veces.
‘Sin duca ex bastante mejor delegar al motor de base de datos ls tareas de ordenacin y seleccién def, y
‘materaizaren memora sla las antidages Que sean nacearas ena vita actual, et dec, la plgina de cates
stb, Le hacemos?
1. El Modelo, revisitado
Recordemos que ene! anti: tenlamos una case de sericos det adel simplsima, con un ics
tod tara css iustonas, que Uaaba un contest de objetor ce Entity Framework par obtener
todas is rstancias de a clase Persona alracenagas on tbave de datos
[ible elage hocolSonvcars Sumpnsble
private readonly Diossrtities datas = new oososroeiess
ww. varblonetfound.comi201 iU2iwebgrd-en-mve--paso-paso-yhtml
Tee
coer
Profession
GE
=
@magull
652 talon
— Veriabte not
found ss
concrete Go
Dans 26,1
ma Cong
Desarrollo de
‘Software
abn.
Desaralo
Personalzado
Software
Expertos en
Desarllo
iConsute!
>
wosowts
esas (46)
Iusraceicteas (24)
ini 225)
sia (1)
aces (12)
fenton (7)
sss (20)
nse 2)
sais (28)
mest 19
ins (11)
‘etwas tee (1)
ena a (12)
soacaas (12)
lentlound ce (1)
saat (2)
06)
Webs en MVE 3, paso a paso (y I | arabe not found
public Sunorsh leer Obtnarsersonat)
return datos. Personas. ToLtst 0
pubic void oiepase()
tates Dispose);
>
>
Eneste cat, dado que petenderos delegar at Modelo a responsabitdad de paginaryordenar adecuadamente
bs dos antes de enviaras 8 Webbs, necesitamas aad dos nuevos méteses:conasserscnests¥
Elpriero de ellos, ccvco-tersonas i), que retomard elnbmero ce elementos totes exstentes en inbare de
‘aioe, Yahemos comentade antes que WebGed podiaabtener este dao simplemente contange el otal ce
‘elementos pesertes en elorgen ce dats, pere come ahora pretenderos pasate s8 os dates de a panna
Actual, esa informacion deberes indicirsea expresamente para que pueds consti el mecaniso de
Daginaioncorectanante,
Ecbsigo de este métoeo es bastante simple:
[ite sot Centarbersonas()
«
return datos. Persones. Counts
>
Vamos ahora implement orsenerbasinnzebersonsi- Come Segur pods nt, su abelivo es retomare
conjunte de instancis de Persona que deben aparecer en una pagina concreta de dates, teniando en cuenta
elnimere de eleentes por pagina empleadsyelcriteria de ardenacon actual.
Asumfendo que estamos utitznce LINQ, ls abtenelén de una pina cnctetade datos es rv uitzande fs
‘operadores Ses) y sie) La ic dficutad con a que podem encontramas esa forma de pasar at
Modelo eleiterio de orenacisn actual, per, came paemos comprabar a continuscin Nay muchas formas de
conseguir, as tantas como éesavotaderes que se enfrenten ae. Para que 05 hagas ura idea, veres
es posibiidacesulilando expesions de cadena, ybasaa en expresiones nbs.
1.4. ObtenerPaginaDePersonas), magic string edition
Ua posibidas bastante seca de implamentarcnsiste en que et Model reciba crectamente un cadena
‘sera el uso de parémetros aploraes para a accén, en ls que especifieamos un vr por defecto para
‘cuando no estén indcados deforma exotica en a peti,
‘Yen elcuerpo de métedo, a cbtencién detnimere ge personas es inmediata gracias at mézodo
“casters ae hemos creac aneriomente eh e Modes, La obtencién des peronss para pobu lk
rela cepende cel enfoque uitzade en a implementacion del método coconez2seateracsnas (1. A
coneinucisn vere alguns posibildades, aunque antes vanes a paramos eh ate deta
Adiferencia dl ejenple det post ante, en el que la isa so necestaba una sta de personas pra
‘maquetare, en esta ocasin deberes suns alguna informacion ms
+ enimere de personas por pina,
la colecién de persones, aunque so as presentes en a pn atu
+ el ndmere total de personas, para que WebGrid pueda crear la herraienta Ge navegacin por paginas
Por tanto, nos encontrames ante un escenario “de manus” par eluso de un enticed View Nose, que
‘contend toga ext informacién Sv dencin podria er siguiente
i
publtc sot mineroepersonas (gst) seth)
Pubic ituncrsbiecersons Personas { eet sets )
Public soe Peosonanorsagina tases sets)
>
De ests oma, podeos ry ands forma al cuerpo de & acc, que queda de siguente mines
ible (Teen page = Ay string sort = oeSdos, string serie = "ASC)
‘ cy Ports 18;
“or naeeesonas = services.ConarPersenas(); var pasanas = e+. // obtener 1a eoleccion o@ o
ww. varblonetfound.comi20 iU2iwebgrd-en-mve--paso-pasoyshtml a