【问题标题】:Are xp:dataContext variables read-only?xp:dataContext 变量是只读的吗?
【发布时间】:2021-07-28 14:01:33
【问题描述】:

从我在 Mastering XPages 一书中和网络上看到的示例中,xp:dataContext 变量应该是可写的,但我无法让它工作。

以下是我的代码的简化版本。一个按钮调用一个xe:dialog,其中包含一个panel 和一个dataContext 变量attended,初始值为“”,期望能够从radioGroup 数据绑定中写入。当收音机设置为某个值(在本例中为!= "Yes")时,我想取消隐藏div,但它不起作用。 div 不会出现,并且 txt1 计算文本字段永远不会更改以反映单选的值。

我尝试了onclickonchange 事件处理程序,但似乎都没有效果。 dataContext 变量是只读的吗?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">

  <xp:button id="btn" value="Button">
    <xp:eventHandler event="onclick" submit="true" refreshMode="partial">
      <xp:this.action><![CDATA[#{javascript:getComponent('dlg').show()}]]></xp:this.action>
    </xp:eventHandler>
  </xp:button>

  <xe:dialog id="dlg" title="Dialog">
    <xp:panel id="panel1" readonly="false">
      <xp:this.dataContexts>
        <xp:dataContext var="attended" value="" />
      </xp:this.dataContexts>

      <xp:radioGroup id="activityAttended" value="#{attended}">
        <xp:selectItem itemLabel="Yes" />
        <xp:selectItem itemLabel="No" />
        <xp:selectItem itemLabel="Maybe" />
        <xp:eventHandler id="event1" event="onclick" submit="true"
          refreshMode="partial" refreshId="target" />
      </xp:radioGroup>

      <xp:div id="target">
        radio: <xp:text id="txt1" value="#{attended}" />

        <xp:div id="div1" rendered="#{attended != 'Yes'}">
          <xp:text id="txt2" value="#{attended}" />
        </xp:div>
      </xp:div>
    </xp:panel>
  </xe:dialog>
</xp:view>

【问题讨论】:

    标签: xpages


    【解决方案1】:

    据我所知,您不能为 dataContext 分配变量名。您可以做的是将值绑定到包含另一个值的东西,例如Map 或自定义对象,然后更改其属性。 p>

    例如,如果您将其设为 var="contextProps" value="${javascript:new java.util.HashMap()}",则您可以执行 #{contextProps.attended != 'Yes'}value="#{contextProps.attended}" 之类的操作。通常,您需要一个比通用 HashMap 更充实的对象,但它可以作为示例或在紧要关头作为有用的容器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 2015-01-31
      相关资源
      最近更新 更多