如何构造页面和部分模板,以便Ajax可以很好地使用
<paginate>
列排序呢?
我目前有一个search.gsp页面,其中有一个远程字段调用控制器来更新模板。这一切都很好。但是,列排序和分页操作会导致我的search.gsp被模板视图完全替换。
从my search.gsp:
<div id="searchBox">
Enter a key or phrase: <g:remoteField name="searchBox"
update="resourceSearchResultPanel" paramName="q"
url="[controller:'resourceEntry',action:'searchForResources']"
/>
</div>
<div id="resourceSearchResultPanel" />
我的控制器处理搜索请求的方式如下:
def searchForResources = {
params.max = Math.min(params.max ? params.max.toInteger() : 10, 100)
params.offset = params.offset ? params.offset.toInteger() : 0
log.debug "Handling search post action"
def q = params.q ?: null
log.debug "Search phrase is $q"
def searchResults
if (q) {
searchResults = [
results: ResourceEntry.search(q,[offset: params.offset, max: params.max]),
resultCount: ResourceEntry.countHits(q),
q: q.encodeAsHTML()
]
}
render(template:"resourceSearchResultPanel",model:searchResults)
}
'u resourcesearchresultpanel.gsp只是一个包含此内容的表
<页码& gt;
标签:
<g:paginate action="searchForResources" total="${resultCount}" params='["q":"${q}"]' />
问题是当
<页码& gt;
标记调用控制器,整个页面将使用_resourcesearchresultpanel.gsp模板的内容刷新,而我只希望_resourcesearchresultpanel.gsp本身在search.gsp中刷新。
没有
update
属性就像
remoteField
标签…