gpt4 book ai didi

grails - Grails: View 模板中的分页和排序问题

转载 作者:行者123 更新时间:2023-12-02 15:15:21 24 4
gpt4 key购买 nike

如何构造我的页面和部分模板,以便Ajax与<paginate>和列排序配合使用?

我目前有一个带有remoteField的search.gsp页面,该页面调用 Controller 来更新模板。这一切都很好。但是,列的排序和分页操作导致我的search.gsp被模板 View 完全取代。

从我的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" />

我的 Controller 按如下方式处理搜索请求:
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)
}

_resourceSearchResultPanel.gsp只是一个带有 <paginate>标记的表:
<g:paginate action="searchForResources" total="${resultCount}" params='["q":"${q}"]'  />

问题是,当 <paginate>标记调用 Controller 时,整个页面将用_resourceSearchResultPanel.gsp模板的内容刷新,而我只希望_resourceSearchResultPanel.gsp本身在search.gsp中刷新。

没有 update标记中的 remoteField属性...

最佳答案

paginate标签不支持生成Ajax链接,因此您必须编写自己的调用remoteLink而不是link的标签版本。

干杯

背风处

关于grails - Grails: View 模板中的分页和排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1689796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com