【问题标题】:Use SSJS only to populate Dojo Combo box and include separate itemLabel and itemValue仅使用 SSJS 填充 Dojo 组合框并包含单独的 itemLabel 和 itemValue
【发布时间】:2014-12-08 15:14:54
【问题描述】:

我正在支持我的公司最早的和第一个 XPage 应用程序。该应用程序不使用 java 做任何事情,而是使用 SSJS 做所有事情。我不想仅仅为了这一项任务就开始使用 java bean。

这个问题涉及 java 的方式来做我需要的同样的事情:Populating selectItems of the combobox (label, value) using a managed bean(虽然我知道这是更好的方式,但我试图坚持已经建立的模式)

应用程序将所有关键字加载到 applicationScope 中,然后在需要时使用它们。我正在尝试加载显示值并在存储时返回关联的值。这类似于多年来传统 Notes 的行为方式。

我更改了 applicationScope 值以存储管道 (|) 之后的值,但我还没有弄清楚如何使用 SSJS 使用该值。我开始怀疑这是否可能。

我尝试使用核心组合框控件而不是 Dojo 组合框来生成我需要的代码。看来您不能对标签和值使用单独的“公式项”。有没有人想出一个解决方案,没有使用 java 集合。

【问题讨论】:

    标签: xpages


    【解决方案1】:

    您可以在 SSJS 中使用 Java 类 javax.faces.model.SelectItem 来填充 selectItems:

        <xp:comboBox id="comboBox1">
            <xp:selectItems>
                <xp:this.value><![CDATA[#{javascript:
                    var item1 = new javax.faces.model.SelectItem("Value1", "Label1");
                    var item2 = new javax.faces.model.SelectItem("Value2", "Label2");
                    [item1, item2]
                }]]></xp:this.value>
            </xp:selectItems>
            ...
        </xp:comboBox>
    

    【讨论】:

      【解决方案2】:

      您可以在 SSJS 中使用 Java 解决方案。您只需要var 而不是new 引用中的初始类名和完整类名,因此使用java.util.ArrayList 而不是ArrayList 和javax.faces.model.SelectItem 而不是SelectItem。见这里http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/xpages-best-practice-computed-selection-lists?opendocument&comments

      因此,您链接到的 StackOverflow 问题中的代码转换为 SSJS 应该是:

      var options = new java.util.ArrayList();
      
      var option = new javax.faces.model.SelectItem();
      option.setLabel("Here's a label");
      option.setValue("Here's a value");
      
      options.add(option);
      
      return options;
      

      【讨论】:

      • 选择这个答案是因为:构建集合,添加到它,然后传递整个集合适合我从应用程序范围读取的方式。谢谢保罗
      【解决方案3】:

      也许我错过了您的问题,因为我的回答相当简单,但是要使用 JavaScript 计算标签和值,请创建一个 JavaScript 字符串数组,其中每个字符串的格式为“Label|Value”(竖线是Domino 字段中的分隔符)。

      霍华德

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-15
        • 2013-04-26
        • 2023-03-07
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多