Select Grails-如何在更改选择后更新GSP?
我已经编写了一个域类并构建了控制器和视图。我修改了list.gsp和list操作。为了过滤显示的内容,我在页面上放置了一个g:select标记 每当更改select中的值时,列表控制器将再次启动并过滤返回的数据实例。这很有魅力 问题是,我无法显示已更改的实例;我知道更新GSP的唯一方法是执行window.location.reload(),但这会导致重新初始化页面。所以一切都回到了默认状态 所以这里有一个问题:我如何让我的GSP获取更改的实例数据并显示它 例如,选择其中一个。返回的实例通过所选的月份和年份变量进行过滤Select Grails-如何在更改选择后更新GSP?,select,grails,instance,gsp,Select,Grails,Instance,Gsp,我已经编写了一个域类并构建了控制器和视图。我修改了list.gsp和list操作。为了过滤显示的内容,我在页面上放置了一个g:select标记 每当更改select中的值时,列表控制器将再次启动并过滤返回的数据实例。这很有魅力 问题是,我无法显示已更改的实例;我知道更新GSP的唯一方法是执行window.location.reload(),但这会导致重新初始化页面。所以一切都回到了默认状态 所以这里有一个问题:我如何让我的GSP获取更改的实例数据并显示它 例如,选择其中一个。返回的实例通过所选的
<g:select id="monthSelection" from="${['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']}" value="${inputYear}" onchange="${remoteFunction(
action:'list',
params:'\'selectedYear=\' + escape(yearSelection.value) +\'&selectedMonth=\' + escape(this.value)'
)}"
"/>
听起来你要么需要
remoteFunction
方法,使其返回模板视图,并在remoteFunction
调用上设置update
参数,以指定页面上的哪个div应使用返回视图中的内容进行动态更新我已经在一些需要ajax更新的情况下使用了选项2,并且效果很好。尝试以下方法:
<g:select id="monthSelection" from="${['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']}" value="${inputYear}" onchange="${remoteFunction(
action:'list',
params:'\'selectedYear=\' + escape(yearSelection.value) +\'&selectedMonth=\' + escape(this.value)',
update : 'divId'
)}"/>
这里的“divId”应该包含一个html部分,您需要在使用列表操作进行ajax调用后更新该部分
比如:
<div id='divId'>
.....
....
</div>
.....
....
@Robin:我同意ajax调用(选项2)是一个更合适的选择,因为您使用的是remoteFunction()