Está en la página 1de 7
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! > w osowts 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

También podría gustarte