如何在grails中的select框中显示父域字段
How to show parent domain field in select box in grails
我正在使用 grails 2.1.0。我需要在 gsp 页面的 select 框中通过父链显示父域的字段值。但我收到错误。到目前为止,我已尝试如下::
我的第一个域,其中包含名为 adtAuditPack 的父域 >>>
class AdtAuditorSchdlPack {
......
static belongsTo = [adtAuditPack: AdtAuditPack,fiscalYear:FiscalYear]
......
}
我的上述域的第一个父域名为 AdtAuditPack >>>
class AdtAuditPack {
......
static belongsTo = [auditFirm:AuditFirm]
......
}
我的 adtAuditorSchdlPack 的第二个父级名为 AuditFirm >>>
class AuditFirm {
......
String auditFirmName
......
}
现在我想将 auditFirm 名称显示为 optionValue,将 AdtAuditorSchdlPack.id 显示为 optionKey。为此,我有以下 select 如下 >>>
<g:select id="auditPack0" name="auditPack0" from="${AdtAuditorSchdlPack?.adtAuditPack?.auditFirm}" style="width: 200px;"
optionKey="id" optionValue="auditFirmName" noSelection="['': 'Select One']"
required="" class="form-control"/>
显示以下工具提示 >>
Cannot reference non-static symbol 'adtAuditPack' from static context
有人可以帮我解决这个问题吗?!!!有没有办法做到这一点???
在您的控制器上写一个动作,由您想要的 gsp 页面中的 ajax 调用。该操作将在页面加载函数中调用。在您的控制器中编写一个查询,例如您加入 3 域的位置并将其附加到您的 gsp 字段。
看来您必须调整您的 from 属性。它必须包含某种列表。
它应该看起来像这样:
<g:select id="auditPack0" name="auditPack0" from="${AdtAuditorSchdlPack.list()}" style="width: 200px;"
optionKey="adtAuditPack?.auditFirm?.id" optionValue="adtAuditPack?.auditFirm?.auditFirmName"
noSelection="['': 'Select One']" required="" class="form-control"/>
或者可以直接从您的控制器提供 AuditFirms 列表。
您可以在Service/Controller 上构建下拉列表并通过模态传递给gsp 页面并使用。
controller/service 方法如下所示:
def c = AdtAuditorSchdlPack .createCriteria()
def results = c.list() {
and{
// your criteria logic
}
order('id', 'asc')
}
根据您的逻辑构建列表:
List auditFirmList= new ArrayList()
results.each { AdtAuditorSchdlPack adtAuditPack->
dataReturns.add([id: adtAuditPack?.auditFirm?.id, name: "${adtAuditPack?.auditFirm?.auditFirmName}"])
}
现在您可以通过模型传递此列表并按如下方式在下拉列表中使用。
<g:select class=" form-control" id="auditPack0" name='auditPack0'
noSelection="${['': 'Select one...']}" from="${auditFirmList}" optionKey="id" optionValue="name"></g:select>
optionKey 和 optionValue 可能会在 gsp 视图页面中标记为红色,但会在 运行 上工作。
我正在使用 grails 2.1.0。我需要在 gsp 页面的 select 框中通过父链显示父域的字段值。但我收到错误。到目前为止,我已尝试如下::
我的第一个域,其中包含名为 adtAuditPack 的父域 >>>
class AdtAuditorSchdlPack {
......
static belongsTo = [adtAuditPack: AdtAuditPack,fiscalYear:FiscalYear]
......
}
我的上述域的第一个父域名为 AdtAuditPack >>>
class AdtAuditPack {
......
static belongsTo = [auditFirm:AuditFirm]
......
}
我的 adtAuditorSchdlPack 的第二个父级名为 AuditFirm >>>
class AuditFirm {
......
String auditFirmName
......
}
现在我想将 auditFirm 名称显示为 optionValue,将 AdtAuditorSchdlPack.id 显示为 optionKey。为此,我有以下 select 如下 >>>
<g:select id="auditPack0" name="auditPack0" from="${AdtAuditorSchdlPack?.adtAuditPack?.auditFirm}" style="width: 200px;"
optionKey="id" optionValue="auditFirmName" noSelection="['': 'Select One']"
required="" class="form-control"/>
显示以下工具提示 >>
Cannot reference non-static symbol 'adtAuditPack' from static context
有人可以帮我解决这个问题吗?!!!有没有办法做到这一点???
在您的控制器上写一个动作,由您想要的 gsp 页面中的 ajax 调用。该操作将在页面加载函数中调用。在您的控制器中编写一个查询,例如您加入 3 域的位置并将其附加到您的 gsp 字段。
看来您必须调整您的 from 属性。它必须包含某种列表。
它应该看起来像这样:
<g:select id="auditPack0" name="auditPack0" from="${AdtAuditorSchdlPack.list()}" style="width: 200px;"
optionKey="adtAuditPack?.auditFirm?.id" optionValue="adtAuditPack?.auditFirm?.auditFirmName"
noSelection="['': 'Select One']" required="" class="form-control"/>
或者可以直接从您的控制器提供 AuditFirms 列表。
您可以在Service/Controller 上构建下拉列表并通过模态传递给gsp 页面并使用。
controller/service 方法如下所示:
def c = AdtAuditorSchdlPack .createCriteria()
def results = c.list() {
and{
// your criteria logic
}
order('id', 'asc')
}
根据您的逻辑构建列表:
List auditFirmList= new ArrayList()
results.each { AdtAuditorSchdlPack adtAuditPack->
dataReturns.add([id: adtAuditPack?.auditFirm?.id, name: "${adtAuditPack?.auditFirm?.auditFirmName}"])
}
现在您可以通过模型传递此列表并按如下方式在下拉列表中使用。
<g:select class=" form-control" id="auditPack0" name='auditPack0'
noSelection="${['': 'Select one...']}" from="${auditFirmList}" optionKey="id" optionValue="name"></g:select>
optionKey 和 optionValue 可能会在 gsp 视图页面中标记为红色,但会在 运行 上工作。