Select Grails-如何在更改选择后更新GSP?

Select Grails-如何在更改选择后更新GSP?,select,grails,instance,gsp,Select,Grails,Instance,Gsp,我已经编写了一个域类并构建了控制器和视图。我修改了list.gsp和list操作。为了过滤显示的内容,我在页面上放置了一个g:select标记 每当更改select中的值时,列表控制器将再次启动并过滤返回的数据实例。这很有魅力 问题是,我无法显示已更改的实例;我知道更新GSP的唯一方法是执行window.location.reload(),但这会导致重新初始化页面。所以一切都回到了默认状态 所以这里有一个问题:我如何让我的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()