【问题标题】:xpages reader field with - read only typexpages 阅读器字段 - 只读类型
【发布时间】:2014-11-24 08:11:04
【问题描述】:

我有一个问题: 我的 xpages 包含一个包含文档创建者的字段。 问题是: 启用 ReadOnly 字段时,代理无法从上下文中获取该字段的值。

我希望用户不能更改字段的值 如何解决?

注意:有一个按钮会调用代理来处理上下文

感谢您的帮助

【问题讨论】:

标签: field xpages readonly


【解决方案1】:

为什么不使用 inputText 的disable 属性?再加上一点 CSS 的帮助,结果可能会很好:

 <xp:inputText id="inputText1" 
            style="background-color:none;border:none;background: transparent"
            disabled="true">
....
</xp:inputText>

或者你可以计算禁用属性:

<xp:this.disabled><![CDATA[#{javascript:if (currentDocument.isEditable())
return true;}]]></xp:this.disabled>

提示:我建议创建一个 .css 文件并在其中写入所有属性。然后只需将文件导入相应的 xpage/自定义控件并在字段的Style 属性中指定类。

【讨论】:

  • 我尝试过 Disabled=True,但无法从上下文中获取值。
【解决方案2】:

首先:你想做什么不是很清楚。您有一个文档创建者的字段,并且您说的是代理。几点建议:

  • 切勿尝试处理 UI 元素。始终追求数据模型、绑定数据。
  • 显示用户名不会将其写回任何地方,您需要采取不同的操作。添加到“发布新文档”事件中,例如:

    var creator = document1.replaceItemValue("Creator",@UserName);
    creator.setAuthors(true);
    

(上面是我的头,可能包含拼写错误)。然后值在文档中,您可以在计算字段中使用它并将其交给代理(我不会这样做,将您的代理代码转换为 Java 并在您使用它时清理它)。

【讨论】:

    【解决方案3】:

    你的意思是这样的吗?

    <xp:inputText id="inputText1" defaultValue="test">
            <xp:this.attrs>
                <xp:attr name="readonly" value="true"></xp:attr>
            </xp:this.attrs>
    </xp:inputText>
    

    【讨论】:

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