2013-03-05 115 views
1

我有以下viewPanel。当用户点击计算出的网页网址时,我想打开一个新页面。我似乎没有想到这一点。打开空白页面(新页面)在点击计算页面url的视图

<xp:viewPanel rows="30" id="viewPanel9" showColumnHeader="false" var="rowData"viewStyle="width:auto" disableTheme="true"> 
<xp:this.data> 
    <xp:dominoView var="view9" databaseName="product/picture.nsf" 
    viewName="pictures3" keysExactMatch="true" 
    keys="#{javascript:sessionScope.SelectedProduct;}"> 
    </xp:dominoView> 
</xp:this.data> 
    <xp:this.rendered><![CDATA[#{javascript:getComponent("viewPanel9").getRowCount() > 0}]]> 
    </xp:this.rendered> 
     <xp:viewColumn columnName="picDescr" id="viewColumn9" displayAs="link" openDocAsReadonly="true"> 
      <xp:this.iconSrc><![CDATA[#{javascript:thisid = rowData.getColumnValue("unid"); 
       thisdocument = rowData.getColumnValue("picName"); 
       calculatedlink = "servername/product/picture.nsf/O/"+thisid+"/$FILE/"+thisdocument; 
       return calculatedlink}]]> 
      </xp:this.iconSrc> 
      <xp:this.pageUrl><![CDATA[#{javascript:thisid = rowData.getColumnValue("unid"); 
       thisdocument = rowData.getColumnValue("picName"); 
       picturename = thisdocument.replace("th_",""); 
       calculatedlink = "servername/product/picture.nsf/O/"+thisid+"/$FILE/"+picturename; 
       return calculatedlink}]]></xp:this.pageUrl> 
     <xp:viewColumnHeader value="Description" id="viewColumnHeader9"> 
     </xp:viewColumnHeader> 
     </xp:viewColumn> 
</xp:viewPanel> 

回答

3

有段时间,我一直在努力解决同样的问题。我为它创建了一个解决方法,但我不知道它是否是最好的解决方法。

首先将displayAs属性xp:viewColumn设置为hidden。所以它看起来像这样:

<xp:viewColumn columnName="picDescr" id="viewColumn9" displayAs="hidden" openDocAsReadonly="true"> 

现在把一个链接控制列,你必须在源选项卡中执行此操作。然后,您可以将target属性设置为_blank以获取链接控件。所以你的代码看起来像这样:

<xp:viewColumn columnName="picDescr" id="viewColumn9" displayAs="hidden" openDocAsReadonly="true"> 
    <xp:link escape="true" target="_blank"> 
     <xp:this.text><![CDATA[#{javascript:rowData.getColumnValue("picDescr");}]]></xp:this.text> 
     <xp:this.value><![CDATA[#{javascript:thisid = rowData.getColumnValue("unid"); 
thisdocument = rowData.getColumnValue("picName"); 
picturename = thisdocument.replace("th_",""); 
calculatedlink = "servername/product/picture.nsf/O/"+thisid+"/$FILE/"+picturename; 
return calculatedlink}]]></xp:this.value> 
    </xp:link> 
... 
... 
... 
</xp:viewColumn> 
+0

似乎工作,谢谢! – 2013-03-05 14:02:48

1

我想我会使用重复控制。

向上接近顶部建立联动的数据像你一样:

<xp:this.data> 
    <xp:dominoView var="contactsView" 
     viewName="TeamDirectoryNameLU"> 
    </xp:dominoView> 
</xp:this.data> 

然后,您希望您的“看法”:

<ul> 
    <xp:repeat id="contactRepeat" rows="30" value="#{contactsView}" var="dataRow" disableOutputTag="true"> 
     <li> 
      <xp:link escape="true" id="link1"> 
       <xp:this.value><![CDATA[#{javascript:return "m_ContactDetails.xsp?action=OpenDocument&documentId=" + dataRow.getDocument().getUniversalID();}]]></xp:this.value> 
       <xp:this.text><![CDATA[#{javascript:return dataRow.getColumnValue("Name");}]]></xp:this.text> 
      </xp:link> 
     </li> 
    </xp:repeat> 
</ul> 

我得到了这样的基础从TeamStudio最近在移动应用上的视频。它是jQuery驱动的联系人列表的一部分,它打开联系人详细信息XPage,供您点击联系人。

+0

这也应该工作。我会试一试。 – 2013-03-06 11:15:52