2014-01-08 37 views
1

出於某種原因,我無法讓我的代碼拉起我打來的視圖。更糟的是,我沒有在我的XPage上收到任何類型的錯誤消息,當點擊它時組合框只是空白。What's Wrong With My @DbColumn?

我試圖拉出一個部門列表。名爲(DepartmentLookup)的視圖實際上包含約135個條目。我想要第二列,其中包含部門名稱。這裏是我的計算值碼:@DbColumn(["DomApps01/Hendricks", "aApplications/HCHPhoneBk.nsf"], "(DepartmentLookup)", 2)

組合框我XSP源代碼是在這裏:

<xp:comboBox 
    id="department" 
    value="#{document1.department}" 
    style="width:180px" 
    rendered="#{javascript:document1.isEditable()}"> 
    <xp:this.validators> 
     <xp:validateExpression 
      message="You must select a Department"> 
      <xp:this.expression><![CDATA[#{javascript:value != "Select One"}]]></xp:this.expression> 
     </xp:validateExpression> 
    </xp:this.validators> 
    <xp:selectItem 
     itemLabel="Select One" 
     itemValue="Select One" 
     id="selectItem1"> 
    </xp:selectItem> 
    <xp:selectItems 
     id="selectItems1"> 
     <xp:this.value><![CDATA[#{javascript: 
      @DbColumn(["DomApps01/Hendricks", "aApplications/HCHPhoneBk.nsf"], "(DepartmentLookup)", 2) 
      }]]></xp:this.value> 
    </xp:selectItems> 
</xp:comboBox> 
+0

該視圖包含多少條目? 「@ DbColumn」允許返回多少數據有一個有限的限制。 –

+0

我知道有一個限制,但我認爲這是很好的。它大約有1400左右。 – Robert

+0

你的組合框的xsp源代碼是怎樣的?請將其添加到您的問題。 –

回答

1

使用此代碼來獲得一個錯誤字符串的結果,如果數據庫或視圖中不可用:

<xp:selectItems 
     id="selectItems1"> 
     <xp:this.value><![CDATA[#{javascript: 
       var db = session.getDatabase("DomApps01/Hendricks", "aApplications/HCHPhoneBk.nsf"); 
       if (!db.isOpen()) { 
        return "Error reading database"; 
       } 
       var result = @DbColumn(db, "(DepartmentLookup)", 2); 
       if (typeof result === 'undefined') { 
        return "Error reading view"; 
       } 
       result 
      }]]></xp:this.value> 
    </xp:selectItems> 

在我的測試@DbColumn如果失敗返回什麼 - 也不例外得到投擲(因此,的try-catch塊沒有幫助)。這就是爲什麼你沒有收到錯誤信息。

作爲替代方案,您可以使用Java version of DbLookup & DbColumn, with cache, sort and unique and without 64K limit

+0

感謝您獲得Java DbLookup和DbColumn的鏈接。你知道正在實施的例子嗎?在NSF中可以看到的東西? –