2014-11-24 52 views
0

我有疑问: 我的xpages包含一个包含文档创建者的字段。 问题是: 当ReadOnly字段为Enabled时,代理程序无法从上下文获取该字段的值。xpages阅读器字段 - 只读类型

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

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

谢谢您的帮助

+0

我认为这可能是由于XPage呈现readOnly字段为''标记中的文本。您可以尝试的一些选项是:(1)[使用JavaScript制作readOnly字段](http://naveegator.blogspot.com/2011/12/read-only-edit-box-in-xpage.html)(2)[使用'attr'属性设置只读字段](http://stackoverflow.com/q/14637693/1047998)(3)[在Xpages中使用show read only only disabled属性](http://naveegator.blogspot.com /2012/01/new-property-in-xpages-show-read-only.html)(4)使用XPages中的控制 – Naveen 2014-11-24 08:35:37

+2

您需要提供代码。 XPage中没有代理,代理中没有上下文 – stwissel 2014-11-24 14:48:10

回答

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属性中的类。

+0

我尝试过Disabled = True,但该值无法从上下文获得。 – user3659403 2014-11-24 08:31:54

+0

嗯,我编辑了我的答案。我希望它能帮助你。 – 2014-11-24 08:33:39

0

你的意思是这样的吗?

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

首先:它不是很清楚你想要做什么。您与文档的创建者有一个领域,并且您会谈论代理。几个指针:

  • 永远不要尝试处理UI元素。始终追踪数据模型,绑定数据。
  • 显示一个用户名不会写回任何地方,你需要采取不同的行动。添加到“后新文件”事件是这样的:

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

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