2014-11-24 53 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並在清理過程中清理它)。