首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

带搜寻的ExtGrid终于能分页了

2012-11-25 
带搜索的ExtGrid终于能分页了前天下午参照了一位网友的说法,为了显示查询后的结果采用了下面的代码?functi

带搜索的ExtGrid终于能分页了

前天下午参照了一位网友的说法,为了显示查询后的结果采用了下面的代码

?

function searchDoc() {var ds = new Ext.data.Store({reader: new Ext.data.JsonReader({//读取json数据root:'searchDocList', //totalProperty:'totalSearch'},[{name: 'name'},{name: 'EName'},{name: 'extType'},{name: 'state'},{name: 'docId'},]),proxy : new Ext.data.HttpProxy({url : path+'doc/searchDoc.action',method: 'GET'})})docGrid.reconfigure(ds,cm);ds.baseParams['keyword'] = text_search_doc.getValue();//text_search_doc为一个Ext.form.TextFieldds.load({params : {start : 1,limit :10}});}

?

?

?

果然能够显示查询后的结果,但只有一页,我思先想后,结果发现分页还是要传递参数的,后来听说一个什么baseParams,能够传递分页参数,结果我就就在这个处理方法里面写了?ds.baseParams['keyword']结果还是不能分页,显示的仍然是查询前的分页效果,昨天早上起床后就开始忙活搜集资料,看了许多人的回复都是说一个baseParams的,由于受到了第一位网友写的代码的思维限制,导致我昨天一天都在忙活着在处理方法中的ds的相关参数,到了夜里九点多时,头都大了还是没有搞出来,今天早上不心甘起了大早,终于解决了问题:原来,我不应该在方法里面重写Store的内容,那样的话不管怎样还是查询的是一页,因为分页的那个东西是属于外边的Store的,大胆的去掉了searchDoc方法中所有的代码,想到了一个更简便但不知道是否有效的方法,只在处理方法中写了两行代码

?

docStore.baseParams['keyword'] = text_search_doc.getValue();//docStore为外边的Store------(1)

docStore.load({params : {start : 0,limit : 10}});

中间有点注意:就是如果直接在struts2中配置private String keyword那么是会有乱码的,解决方法是ServletActionContext.getRequest.setCharacter("utf-8")来设定字符集然后通过ServletActionContext.getRequest.getParameters("keyword")来获取参数。没想到这么快就出来结果,当时我就快哭了,太激动了,真是功夫不负有心人啊,赶紧记录下来了,为什么写这个baseParams呢,因为你每次分页必须要带上分页条件的,这样设置了最基本的传递参数,只要你搜索框中的值还存在,肯定是按那个条件来分页的

补充一下,后来又发现下面这两条语句可以替换上面的第一行代码,效果是一样的

?

docStore.baseParams.keyword= text_search_doc.getValue();//--------(2)

docStore.baseParams={keyword:text_search_doc.getValue()};//---------(3)

也就是说我们以后传递参数可以有这三种方式了,累死了,先休息会,我五点钟起的床

热点排行