【问题标题】:How to make a select box with constant list items with g:select如何使用 g:select 制作带有常量列表项的选择框
【发布时间】:2013-03-08 16:32:04
【问题描述】:

我想使用<g:select/> 制作一个选择框,并转换为这个html:

<select id="myselect" name="myselect">
  <option value="r">RED</option>
  <option value="g">GREEN</option>
  <option value="b">BLUE</option>
</select>

我还希望在页面重新加载时从 bean 中预先选择该值。

我在 a 内执行此操作,因此我有一个表格,每行都有一个单独的选项框。

我目前正在以下 html 中完成此操作:

<g:each in=${mylist} status="i" var="myInst">
   <select id="status${myInst}" name="status${myInst}" data-id="${myInst.id}">
      <option value="r" <g:if test="${myInst.color == "r"}">selected</g:if>>RED</option>
      <option value="g" <g:if test="${myInst.color == "g"}">selected</g:if>>Green</option>
      <option value="b" <g:if test="${myInst.color == "b"}">selected</g:if>>BLUE</option>
   </select>
</g:each>

这一切都很好,但我想把那个丑陋的 &lt;select&gt; 改成 &lt;g:select&gt;

【问题讨论】:

    标签: grails groovy


    【解决方案1】:
    <g:select id="myselect" name="myselect" value="${myInst.color}"
              from="${['r': 'RED', 'g': 'GREEN', 'b': 'BLUE']}"
              optionKey="key" optionValue="value" />
    

    【讨论】:

    • 然而,如果你打算做这样的事情,我建议使用标签库制作一个“selectColor”标签。当它们在 GSP 中时,试图找到将所有这些魔术常量放在哪里是非最佳的。另外,测试标记库要容易得多。
    【解决方案2】:

    您必须在您的域类中声明“myselect”。我也遇到了这个问题,但我比你早了大约 2 周。见how do I write a set for g:select tag

    【讨论】:

    • @Sharma 他的回答很有效,因为他的“来自”嵌入在
    • 我很困惑为什么这一直被否决。人们是否变得如此懒惰以至于他们只是在不解释任何事情的情况下投反对票
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多