【问题标题】:conditions inside g:select gsp tagg:select gsp 标签内的条件
【发布时间】:2016-07-29 19:35:26
【问题描述】:

我正在使用 g:select 并希望放置一个默认选定值。但是,当默认值为 null 时,它应该显示“请选择一个”。但是,我似乎无法解决。

代码如下:

这是地址对象 - 下拉列表中包含的选项

Address
    Long id
    String name
    Sheriff sheriff
    String phaseCode

ListOfSheriffs 是一个警长列表——包含警长对象的列表

Sheriff
    Long id
    String name
    //other property here

defaultSheriff 是地址的默认警长

下面的代码是我的gsp上的一个

<g:select optionKey = "id" 
          optionValue = "${{sheriff.name +' '+sheriff.id}}"  
          name="sheriff.name"
          from="${ListOfSheriffs}"
          value="${(defaultSheriff == null) ? 'Please select one' : defaultSheriff}" />

但是,如果 defaultSheriff 为 null,则不会显示“请选择一个”,该页面仅显示 ListOfSheriffs 中的第一个警长。

我从here 得到了这个解决方案 .而且不太确定我遗漏了什么。

此外,我尝试根据我在docs 上阅读的内容使用 noSelection。但是,结果是,即使 defaultSheriff 不为空,页面下拉列表中的默认选择值始终是“请选择一个”

<g:select optionKey = "id" 
          optionValue = "${{sheriff.name +' '+sheriff.id}}"  
          name="sheriff.name"
          from="${ListOfSheriffs}"
          value="${defaultSheriff}"
          noSelection="[null:'Please select one']" />

如果我提供的内容有什么不清楚的地方,请随时指出添加,我很乐意详细说明。谢谢

【问题讨论】:

    标签: grails gsp


    【解决方案1】:

    我会说你需要这样的东西

    <g:select optionKey = "id" 
              optionValue = "${{it.name +' '+ it.id}}"  
              name="sheriff.name"
              from="${ListOfSheriffs}"
              value="${sheriff?.id ?: defaultSheriff?.id}"
              noSelection="['':'Please select one']" />
    

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 2022-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多