你说的ajax分页是指什么,一般在手机端用ajax不会做成分页的形式,而是下拉自动加载。
下拉自动加载的原理就是下拉触发一个ajax请求,获取下一页的数据。要实现这个功能需要用到自由模板,具体教程:http://www.jspxcms.com/documentation/269.html
在模板目录建一个自由模板,以app_
开头,如/template/1/m/app_abc.html
,该模板的访问地址为/app?template=abc
。(注:由于模板是放在m
目录的,需要使用手机浏览器才会访问到这个模板,如果使用pc浏览器访问,模板应该放在/template/1/default/app_abc.html
)
模板内容大致为(可以自己加上更多需要的数据):
[
[@InfoPage nodeId=Param.nodeId page=Param.page pageSize='10';pagedList]
[#list pagedList.content as info]
{
"title":"${info.title?js_string}",
"url":"${info.url?js_string}"
}[#if info_has_next],[/#if]
[/#list]
[/@InfoPage]
]
这段代码里需要从url地址中获取两个参数:栏目IDParam.nodeId
和页码Param.page
,所以ajax具体的请求地址为/app?template=abc&page=5&nodeId=12
,这样就可以获取到自己想要的ajax分页数据了。
你这样的弄法,每次加载刷新只显示下一页的列表了吧?之前的就没有了? 感觉在手机上这样搞太生硬了。(当然如果楼主觉得符合那就行)
我们的弄法是新写了个返回json数据的接口,然后把新数据append到原来数据之后。
这个方法和你说的那样啊,返回json数据,然后把新数据append到原来数据之后。
没看出来吗
弄明白了,感谢
是我没注意看清楚,原来是遍历拼json数据……
还想请教下,我想在InfoPage里加入自定义字段查询,customs['IsPrivateHousing']='0',请问怎么实现
[@InfoPage nodeId=Param.nodeId page=Param.page customs['IsPrivateHousing']='0' pageSize='10';pagedList]
[#list pagedList.content as info]
{
"title":"${info.title?js_string}",
"url":"${info.url?js_string}"
}[#if info_has_next],[/#if]
[/#list]
[/@InfoPage]
自定义字段不能用于查询,所有标签的参数都在标签文档中有介绍,自创的参数是无效的