2013-05-15 72 views
1

我有一個xPage自定義控件。一個CC嵌套在另一箇中。當我將xPage放入編輯模式時,最內層的CC不會切換到編輯模式,但它包含CC。我在這裏錯過了什麼?編輯按鈕只是一個簡單的「更改文檔模式」操作。Xpage自定義控件不在編輯模式下顯示

XPAGE代碼

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 
    <xp:this.data> 
     <xp:dominoDocument var="document1" formName="Test"></xp:dominoDocument> 
    </xp:this.data> 
    <xp:button value="Edit" id="button1"> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
     <xp:this.action> 
      <xp:changeDocumentMode mode="edit" var="document1"></xp:changeDocumentMode> 
     </xp:this.action></xp:eventHandler></xp:button> 
    <xp:button value="Submit" id="button2"> 
     <xp:eventHandler event="onclick" submit="true" 
      refreshMode="complete" immediate="false" save="true"> 
     </xp:eventHandler> 
    </xp:button> 
    <xc:Outer></xc:Outer> 
</xp:view> 

外自定義控件

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 
    <xp:this.data> 
     <xp:dominoDocument var="document1" formName="Test"></xp:dominoDocument> 
    </xp:this.data> 
    <xp:table style="border-color:rgb(0,64,128);border-style:solid;border-width:medium"> 
     <xp:tr> 
      <xp:td> 
       <xp:label id="label1" value="Outer CC"></xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:button value="Edit" id="button1"> 
        <xp:eventHandler event="onclick" submit="true" 
         refreshMode="complete"> 
         <xp:this.action> 
          <xp:changeDocumentMode mode="edit"></xp:changeDocumentMode> 
         </xp:this.action> 
        </xp:eventHandler> 
       </xp:button> 
       <xp:button value="Submit" id="button2"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button></xp:td> 
     </xp:tr> 
     <xp:tr> 
      <xp:td> 
       <xp:label value="Outer Field" id="label2"></xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:inputText id="inputText1" 
        value="#{document1.FieldOuter}"> 
       </xp:inputText> 
      </xp:td> 
     </xp:tr> 
     <xp:tr> 
      <xp:td></xp:td> 
      <xp:td></xp:td> 
     </xp:tr> 
     <xp:tr> 
      <xp:td></xp:td> 
      <xp:td> 
       <xc:Inner></xc:Inner></xp:td> 
     </xp:tr> 
    </xp:table> 
</xp:view> 

內部自定義控件

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:this.data> 
     <xp:dominoDocument var="document1" formName="Test"></xp:dominoDocument> 
    </xp:this.data> 
    <xp:table style="border-color:rgb(255,128,0);border-style:solid;border-width:medium"> 
     <xp:tr> 
      <xp:td> 
       <xp:label value="Inner CC" id="label1"></xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:button value="Edit" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
    <xp:this.action> 
     <xp:changeDocumentMode mode="edit" var="document1"></xp:changeDocumentMode> 
    </xp:this.action></xp:eventHandler></xp:button> 
       <xp:button value="Submit" id="button2"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button></xp:td> 
     </xp:tr> 
     <xp:tr> 
      <xp:td> 
       <xp:label value="Field Inner" id="label2"></xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:inputText id="inputText1" value="#{document1.FieldInner}"></xp:inputText> 
      </xp:td> 
     </xp:tr> 
    </xp:table> 
</xp:view> 
+0

他們使用相同的數據源嗎?你有隻讀的XP:面板? –

+5

製作一個示例,在此處張貼 – stwissel

+0

最內層的CC是否設置爲只讀? –

回答

1

每個自定義控制和你的XPage都有一個數據源,但它們具有相同的名稱和被綁定到相同的文檔,因爲它們不會忽略請求參數。 「更改文檔模式」按鈕正在尋找頁面上的第一個數據源,其中指定了var並將其更改爲只讀,因此僅更新綁定到該數據源的字段。我會確保你只有一個同名的數據源,並以這種方式工作。

相關問題