【问题标题】:xPages repeat control with scoped variable as data sourcexPages 以范围变量作为数据源的重复控制
【发布时间】:2014-08-30 22:58:21
【问题描述】:

我需要构建使用范围变量作为数据源的重复控件或(视图或数据表)。并且作用域变量应该是一个数组.. 甚至只是 javaScript 数组..

作用域变量:

viewScope.MY_TEST = new Array();
viewScope.MY_TEST.push("Test1");
viewScope.MY_TEST.push("Test2");

或数组:

var my_arr = new Array();
my_arr.push("Test1");
my_arr.push("Test2");

甚至是一个对象/二维数组:

viewScope.MY_TEST = [];
viewScope.MY_TEST .push([value1, value2]);

所以重复控制应该包含例如两个计算域 一个绑定到 value1,另一个绑定到 value2...

或者给我一个一维数组的例子..

谢谢

【问题讨论】:

    标签: arrays scope xpages datasource repeat


    【解决方案1】:

    我理解您的问题,您希望在重复控件中使用二维 viewScope 变量。

    你可以用这种方式在 JavaScript 中定义这样一个二维数组:

    viewScope.myTest = 
           [["Val_1_1", "Val_1_2"], ["Val_2_1", "Val_2_2"], ["Val_3_1", "Val_3_2"]];
    

    或类似于你的第三个代码sn-p:

    viewScope.myTest = [];
    viewScope.myTest.push(["Val_1_1", "Val_1_2"]);
    viewScope.myTest.push(["Val_2_1", "Val_2_2"]);
    viewScope.myTest.push(["Val_3_1", "Val_3_2"]);
    

    repeat 控件遍历第一个数组级别并将第二个级别写入变量row

    <xp:repeat
        id="repeat1"
        rows="30"
        var="row"
        value="#{viewScope.myTest}">
        <xp:text value="#{row[0]}" />
        &#160;
        <xp:text value="#{row[1]}" />
        <br />
    </xp:repeat>
    

    您可以使用row[0]row[1] 访问这些值。

    此示例呈现以下输出:

    Val_1_1 Val_1_2
    Val_2_1 Val_2_2
    Val_3_1 Val_3_2
    

    【讨论】:

      【解决方案2】:

      值得一看 java.util.ArrayList 或 java.util.HashMap。第一个给出一维对象,第二个给出二维对象。您可能会得到更好的预输入支持。 HashMap 可能看起来很吓人,但实际上你很熟悉——作用域变量就是 HashMap。 myMap.keySet() 是您重复使用的“值”,然后假设var="key" 您可以使用myMap.get(key) 来获取值。

      如果您想使用 JavaScript 对象,请观看我去年为 TLCC 的网络研讨会制作的视频,该视频是我与 Mike McGarel 的 2013 IBM Connect 会议“这不是 Herculean...”。我就是这么做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多