0

我从数据库中得到了这个结果。结果的数量可以是一个、多于一个或根本没有。对于返回的每个寄存器,都会创建一个表,并在一列内显示一个复选框。在视图中,我需要知道选中了哪个复选框,这样我就可以将表格另一列的内容传递给控制器​​,以进行处理。就像“数据库向我返回了一个人列表,我想向其中一些人发送电子邮件,而不是全部人。我选中复选框,查找“电子邮件”列,如果该人的复选框被选中,电子邮件已发送”。

有没有(最好是简单的)方法来实现这一目标?

谢谢你。

4

1 回答 1

2

如果您为所有复选框提供相同的名称,但值不同:

<g:checkBox name="sendTo" value="${firstPerson.id}" checked="${false}"/>
....
<g:checkBox name="sendTo" value="${secondPerson.id}" checked="${false}"/>

然后在控制器中你可以使用

params.list("sendTo").each { personId ->
  def person = Person.get(personId)
  // send email to this person
}

params.list()是在处理潜在的多值参数时了解的一个方便的工具。如果没有选中任何复选框,一个标准params.sendTo会给你一个,如果一个被选中,一个如果两个或更多被选中。使用将始终为您提供一个(根据需要使用零、一个或多个元素)。nullStringListparams.list("sendTo")List

于 2012-10-10T09:58:34.093 回答