Xpage中的ReadOnly字段未提交

时间:2013-02-01 00:25:46

标签: xpages readonly

我的Xpage中有一个字段,我想要只读取并在保存时提交给数据库。该字段从Ajax调用中获取值

将属性ReadOnly设置为true会创建<span>而不是只读字段。

设置属性&#34; 显示已禁用的readonly控件&#34;创建一个输入文本字段,其属性为readonly = readonly。

<input type="text" class="xspInputFieldEditBox" readonly="readonly" name="view:_id1:_id2:_id3:_id28:callbackFieldControlSet:InstrumentShort" id="view:_id1:_id2:_id3:_id28:callbackFieldControlSet:InstrumentShort">

它不会保存到数据库中。

据我所知,readonly字段已提交但未被禁用。

我在这里做错了什么?

/ M

2 个答案:

答案 0 :(得分:5)

您可以使用attr-property添加 readonly 属性:

<xp:inputText id="inputText2" value="#{document1.ReadOnly}">
   <xp:this.attrs>
      <xp:attr name="readonly" value="true" />
   </xp:this.attrs>
</xp:inputText>

顺便说一句:已禁用只读属性的行为是正确的,因为这是服务器端的定义。您希望使用值编辑组件,这就是必须允许它接受值的原因。在客户端禁用它在技术上没有任何影响。

答案 1 :(得分:0)

我认为这是一个错误。你是对的,the read only field should get saved在版本8.5.1中,当&#34;显示禁用控件的属性为readonly&#34;我不习惯通过JavaScript将字段设置为只读。这是代码段:

<xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[function makeFieldReadOnly() {
    document.getElementById("#{id:inputText2}").readOnly = true;
}
window.onload = makeFieldReadOnly;]]></xp:this.value>
</xp:scriptBlock>

在上面的代码段中,当加载页面时,函数makeFieldReadOnly将编辑框inputText2标记为只读。