【发布时间】:2012-03-18 02:15:47
【问题描述】:
我创建了级联选择如下-
<td>Reference Table:</td>
<td><g:select name="tableCombo"
noSelection="${['':message(code:'Select Table')]}"
from="${result}" value="${tableName }" onchange="${remoteFunction(controller:'load',
action:'getColumns', update:'columns', params:'\'tableCombo=\' + this.value')}"/></td>
</tr>
<tr><td>Constraint On 1:</td>
<td><g:select name="columns" noSelection="${['':message(code:'Select Columns')]}" from="[]" /></td>
<td>Constraint Value :
</td>
<td><g:textField name="columnValue" value="${enterVal }" /> </td> </tr>
<tr><td>Constraint On 2:</td>
<td><g:select name="columns2" noSelection="${['':message(code:'Select Columns')]}" from="[]" /></td>
<td>Constraint Value :</td>
<td><g:textField name="columnValue" value="${enterVal }" />
现在我想渲染和填充列和列 2 都选择框 onchange tableCombo。但不知道如何从控制器渲染两者。
def getColumns = {
def columns = GGWSchemaXref.executeQuery("select distinct p.columnname from GGWSchemaXref p where p.tablename=:table",[table:params.tableCombo])
render g.select(from:columns, name:"columns")
}
请帮忙。
谢谢
【问题讨论】:
-
感谢阿利达的回复。你说得对,我想在第一个选择框更改时(一次)更新两个选择框。我可以在 update 中指定 column 和 column2 吗(如下) onchange="${remoteFunction(controller:'load', action:'getColumns', update:'columns', params:'\'tableCombo=\' + this. value')}"/> 我用的是模板的方式。
-
我不认为你可以用“更新”更新多个元素。基于此 jira jira.grails.org/browse/GRAILS-4878。但是您可以编写一个 javascript 函数来根据响应更新元素。而不是从控制器呈现您的选择,而是在地图或 JSON 中返回所需的值,然后使用 javascript 呈现它们。