lotus-notes - 使用动态 View 面板

标签 lotus-notes xpages

我正在使用动态 View 面板在单个XPage内显示各种 View 。这导致了一些问题。首先, View 内设置的列样式不会显示在 XPage 上(例如:使列标题变为粗体)。更重要的是,虽然 View 包含指向 View 内文档的链接,但链接都附加了 action=editDocument,我想将其更改为 action=openDocument。但是,我找不到任何方法来更改此属性。

最佳答案

您需要为此使用定制器 bean,并将该 bean 的名称添加到动态 View 面板控件的 customizerBean 属性中。

在定制器 bean 中,您可以控制样式,例如您正在寻找的样式,但您需要自己编写 Java bean 代码。 Jesse Gallagher 创建了一个很好的扩展定制器 bean 示例,甚至将其放在了 Github 上:https://github.com/jesse-gallagher/Domino-One-Offs .

查看他关于该主题的博客文章:

--

对于将 editDocument 更改为 openDocument 的具体问题,您可以使用以下定制器 bean 的小示例:

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import com.ibm.xsp.extlib.builder.ControlBuilder.IControl;
import com.ibm.xsp.extlib.component.dynamicview.DominoDynamicColumnBuilder.DominoViewCustomizer;
import com.ibm.xsp.extlib.component.dynamicview.UIDynamicViewPanel.DynamicColumn;
import com.ibm.xsp.extlib.component.dynamicview.ViewDesign.ColumnDef;

public class customizer extends DominoViewCustomizer{
  @Override
  public void afterCreateColumn(FacesContext context, int index, ColumnDef colDef, IControl column) {
    //Create a variable for the current component
    UIComponent columnComponent = column.getComponent();
    //Create a reference to the column and set the links to open in read mode
    DynamicColumn dynamicColumn = (DynamicColumn) columnComponent;
    dynamicColumn.setOpenDocAsReadonly(true);
    super.afterCreateColumn(context, index, colDef, column);
  }
}

请记住将该类添加到 faces-config.xml 中,以便能够将其用作 bean。

您可以使用 onColumnClick 事件来代替定制器 Bean 来执行您自己的重定向。这是一个例子:

<xe:dynamicViewPanel value="#{viewdatasource}" id="dynamicViewPanel1" var="viewEntry" pageName="/page.xsp">     
    <xp:eventHandler event="onColumnClick" submit="true" refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:var url="/page.xsp?action=openDocument&documentId="+viewEntry.getNoteID();
context.redirectToPage(url);
}]]></xp:this.action>
    </xp:eventHandler>
</xe:dynamicViewPanel>

关于lotus-notes - 使用动态 View 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372811/

相关文章:

email - 我可以使用 Lotus Notes 发送邮件吗?

java - 如何访问 Lotus Notes 中的 WEB-INF 文件?

css - HTML 表格周围无边框

xpages - XPage 上存在多个 IFrame 时无法设置 sessionScope 变量

javascript - 优化部分刷新

java - Lotus Notes Agent之间共享JFrame,允许数据传递

php - 如何使用 php/linux 从 Lotus Domino 服务器获取 XML 格式的消息正文和附件?

java - 如何使用 Java 复制笔记项目

浏览器中的 xpages 邮件 nsf

properties - compositeData 的所有方法和属性是什么