Extjs, Java paging solution, official idea!

Source: Internet
Author: User

Many people on the Internet do not know how to paging extjs grid, including the problem that start is 0. Someone suggested to modify the paging Toolbar Control to achieve paging effect unrelated to the background, this is also a solution, but it is not the most standard. Next I will talk about the most standard solution !!

First look at the following class!

 Package COM. TD. common; </P> <p> Import Java. lang. reflect. field; <br/> Import Java. util. date; <br/> Import Java. util. list; </P> <p> Import Org. apache. commons. logging. log; <br/> Import Org. apache. commons. logging. logfactory; </P> <p> Import COM. TD. bean. caigou; </P> <p> Import net. SF. JSON. jsonarray; <br/> Import net. SF. JSON. jsonobject; <br/> Import net. SF. JSON. jsonconfig; <br/> @ suppresswarnings ({"unchecked", "serial" }) <Br/> public class objecttojson {<br/> Private Static final log = logfactory. getlog (caigou. class); </P> <p> Public String objecttojson (Object bean) {<br/> jsonobject Jo = jsonobject. fromobject (bean); <br/> // jsonarray ja = jsonarray. fromobject (bean); <br/> return Jo. tostring (); <br/>}</P> <p> Public String arraytojson (Object bean) {</P> <p> jsonarray ja = jsonarray. fromobject (bean); <br/> return Ja. toS Tring (); <br/>}</P> <p> private string convertjavascripttype (string type) {<br/> // system. out. print (type); <br/> If ("string ". equals (type) <br/> return "string"; <br/> else if ("integer ". equals (type) <br/> return "int"; <br/> else if ("date ". equals (type) <br/> return "date"; // The data converted from this JSON package is returned as follows: {"month ": 3, "day": 2, "year": 109, "Nanos": 0, "Time": 1239694471000, "seconds": 31, "timezoneoffset ": -480, "date": 14, "hours": 15, "Minutes": 34} <br/> else <br/> return "string "; <br/>}</P> <p> Public String listtojson (list, string key, int totalnumber, int start, int limit) {<br/> If (list! = NULL & list. size ()> 0) <br/>{< br/> Object OBJ = List. get (0); <br/> return this. listtojson (OBJ, list, key, totalnumber, start, limit); <br/>}else {<br/> return ""; <br/>}</P> <p>/* <br/> * key is not required for the latest method, but must be added to each class. the following field <br/> * Public String keyfield = "{primary key of the table corresponding to each object }"; <br/> * example: <br/> * Public String keyfield = "tablename"; <br/> **/<br/> Public String listtojson (list, int totalnumber, in T start, int limit) {<br/> If (list! = NULL & list. size ()> 0) <br/>{< br/> Object OBJ = List. get (0); <br/> return this. listtojson (OBJ, list, totalnumber, start, limit); <br/>}else {<br/> return ""; <br/>}</P> <p> // <br/>/* <br/> * @ Param object bean Entity Bean list list list containing data, string key: The primary key of the current object. Start indicates the number of lines on each page starting from the page. <br/> */<br/> Public String listtojson (Object bean, list, string key, int totalnumber, int start, int limit) <br/>{</P> <p> stringbuilder sb = new stringbuilder (); <br/> jsonconfig = new jsonconfig (); </P> <p> jsonconfig. registerjsonvalueprocessor (date. class, <br/> New jsdatejsonvalueprocessor (); <br/> jsonconfig. registerjsonvalueprocessor (Java. SQL. date. class, <br/> New jssqldatejsonvalueprocessor (); </P> <p> jsonarray ja = jsonarray. fromobject (list, jsonconfig); <br/> class clazz = bean. getclass (); <br/> // clazz. getdeclaredfields () <br/> Field [] fields = clazz. getdeclaredfields (); </P> <p> Sb. append ("{"); <br/> Sb. append ("'metadata': {"); <br/> Sb. append ("totalproperty: 'totalproperties',"); <br/> Sb. append ("root: 'root',"); <br/> Sb. append (string. format ("ID: '% 1 $ s',", key); <br/> Sb. append ("fields: ["); </P> <p> for (INT I = 0; I <fields. length; I ++) {<br/> Field field = Fields [I]; <br/> string name = field. getname (); <br/> string type = field. getType (). getsimplename (); <br/> Sb. append ("{"); <br/> Sb. append (string. format ("Name: '% 1 $ s', type:' % 2 $ S'", name, <br/> convertjavascripttype (type ))); <br/> Sb. append ("},"); <br/>}< br/> Sb. replace (sb. length ()-1, sb. length (), ""); <br/> Sb. append ("]"); <br/> Sb. append ("},"); <br/> Sb. append ("START:"); <br/> Sb. append (start); <br/> Sb. append (","); <br/> Sb. append ("Limit:"); <br/> Sb. append (Limit); <br/> Sb. append (","); <br/> Sb. append (string. format ("totalproperty: % 1 $ S,", totalnumber); // total number of records <br/> Sb. append ("root:"); <br/> Sb. append (Ja. tostring (); <br/> Sb. append ("}"); <br/> log. debug (sb. tostring (); <br/> return sb. tostring (); <br/>}</P> <p> Public String listtojson (Object bean, list, int totalnumber, int start, int limit) {</P> <p> stringbuilder sb = new stringbuilder (); <br/> jsonconfig = new jsonconfig (); </P> <p> jsonconfig. registerjsonvalueprocessor (date. class, <br/> New jsdatejsonvalueprocessor (); <br/> jsonconfig. registerjsonvalueprocessor (Java. SQL. date. class, <br/> New jssqldatejsonvalueprocessor (); </P> <p> jsonarray ja = jsonarray. fromobject (list, jsonconfig); <br/> class clazz = bean. getclass (); <br/> // clazz. getdeclaredfields () <br/> Field [] fields = clazz. getdeclaredfields (); </P> <p> Sb. append ("{"); <br/> Sb. append ("'metadata': {"); <br/> Sb. append ("totalproperty: 'totalproperties',"); <br/> Sb. append ("root: 'root',"); <br/> try {<br/> // system. out. println (bean. getclass (). getdeclaredfield ("keyfield "). get (bean ). tostring (); <br/> Sb. append (string. format ("ID: '% 1 $ s',", Bean. getclass (). getdeclaredfield ("keyfield "). get (bean ). tostring (); <br/>} catch (illegalargumentexception e) {<br/> E. printstacktrace (); <br/>} catch (securityexception e) {<br/> E. printstacktrace (); <br/>} catch (illegalaccessexception e) {<br/> E. printstacktrace (); <br/>} catch (nosuchfieldexception e) {<br/> E. printstacktrace (); <br/>}< br/> Sb. append ("fields: ["); </P> <p> for (INT I = 0; I <fields. length; I ++) {<br/> Field field = Fields [I]; <br/> string name = field. getname (); <br/> string type = field. getType (). getsimplename (); <br/> Sb. append ("{"); <br/> Sb. append (string. format ("Name: '% 1 $ s', type:' % 2 $ S'", name, <br/> convertjavascripttype (type ))); <br/> Sb. append ("},"); <br/>}< br/> Sb. replace (sb. length ()-1, sb. length (), ""); <br/> Sb. append ("]"); <br/> Sb. append ("},"); <br/> Sb. append ("START:"); <br/> Sb. append (start); <br/> Sb. append (","); <br/> Sb. append ("Limit:"); <br/> Sb. append (Limit); <br/> Sb. append (","); <br/> Sb. append (string. format ("totalproperty: % 1 $ S,", totalnumber); // total number of records <br/> Sb. append ("root:"); <br/> Sb. append (Ja. tostring (); <br/> Sb. append ("}"); <br/> log. debug (sb. tostring (); <br/> return sb. tostring (); <br/>}</P> <p> Public String listtotreejson (list) {<br/> jsonarray ja = jsonarray. fromobject (list); <br/> // system. out. println (Ja. tostring (); <br/> log. debug (Ja. tostring (); <br/> return Ja. tostring (); <br/>}</P> <p> // Public String jsontobeanarray (string jsonstring, object OBJ) {<br/> // jsonarray = jsonarray. fromobject (jsonstring); <br/> // jsonconfig = new jsonconfig (); <br/> // jsonconfig. setarraymode (jsonconfig. mode_object_array); <br/> // jsonconfig. setrootclass (obj. getclass (); <br/> // obj. getclass () [] users = jsonserializer. tojava (jsonarray, jsonconfig ); <br/> // <br/>//} <br/> // Public String jsontobean (string jsonstring, object OBJ) {<br/> // jsonobject jsonperson = jsonobject. fromobject (jsonstring); <br/> // string [] dateformats = new string [] {"yyyy/mm/DD"}; <br/> // jsonutils. getmorpherregistry (). registermorpher (New datemorpher (dateformats); <br/> // person = (person) jsonobject. tobean (jsonperson, person. class ); <br/> // <br/>/}< br/> // </P> <p >}< br/>

 

We can see that:

SB. append ("START :");
SB. append (start );
SB. append (",");
SB. append ("Limit :");
SB. append (Limit );

These lines of code. Now, do you know why your grid cannot be paged?

The front-end paging toolbar is based on the data transferred in the background!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.