【问题标题】:Binding a Repeat Control to either a session or view scope variable将重复控件绑定到会话或视图范围变量
【发布时间】:2016-03-16 16:10:00
【问题描述】:

我有一个已绑定到 sessionScope 变量的重复控件,它工作正常。我试图通过将控件动态绑定到 viewScope 或 sessionScope 变量来使控件更具可扩展性。我已经向包含重复的控件添加了一个自定义属性,并将其称为范围。问题是如何将重复绑定到正确的 Scoped 变量。 在重复控件上,我选择了 JavaScript 作为绑定方法并添加了以下代码:

switch (compositeData.scope){
    case 'ss' :
        return sessionScope.ssCat1
        break;
    case 'vs' :
        return viewScope.vsCat1
        break
} 

我已经检查过,在我的情况下,compositeData.scope = 'ss' 并且 sessionScope.ssCat1 包含正确的数据。

所以我错过了什么,或者这甚至可能吗?

【问题讨论】:

    标签: javascript xpages repeat


    【解决方案1】:

    通过自定义参数在自定义控件中注入重复值不是更好的方法吗 将其命名为重复或以对象为属性类型的其他名称。

    在您的自定义控件中

    <xp:repeat id="repeat1" rows="30"
          var="rowData" style="width:400px" value="#{compositeData.repeat}">
    //do what ever you want with a rowData
    </xp:repeat>
    

    【讨论】:

    • 您可能是对的,我将示例简化为基础,实际上代码工作正常,我的问题实际上在我页面的其他地方。一开始就应该把它拆掉。在我的现实生活示例中,我生成了几个不同的作用域变量,除了在重复中使用之外,因此使用 scope = 'vs' 或 'ss' 实际上可以正常工作。如果它是单个作用域变量,您的方法可能会更好、更容易。
    猜你喜欢
    • 2012-03-16
    • 2021-04-16
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2014-03-06
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多