Вопрос по – Использование панели динамического просмотра

4

Я используюDynamic View Panel отображать различные виды внутри одногоXPage, Это привело к нескольким проблемам. Во-первых, набор стилей столбцов внутри представлений не отображается в XPage (например, выделение жирным шрифтом заголовков столбцов). Что еще более важно, хотя представление содержит ссылки на документы внутри представления, все ссылки добавляются сaction=editDocumentкоторый я хотел бы изменить наaction=openDocument, Однако я не могу найти способ изменить это свойство.

Ваш Ответ

3   ответа
5

используя его форму вместо XPage, вы можете сделать это следующим образом:rowData это переменная для ViewPanel

<xp:eventHandler event="onColumnClick" submit="true" refreshMode="complete" id="eventHandler1">
    <xp:this.action><![CDATA[#{javascript:if (!rowData.isCategory())
        var url = "0/"+rowData.getUniversalID()+"?OpenDocument"
        facesContext.getExternalContext().redirect(url);}]]>
    </xp:this.action>
</xp:eventHandler
работает очень хорошо, спасибо!
Следует отметить, что событие onColumnClick реагирует только на активные ссылки на столбцы, которые есть в представлении (не на все столбцы), поэтому, если вы не активно включили столбец представления, все столбцы были включены как веб-ссылки, только первый столбец n является ссылкой. ,
9

ого компонента вcustomizerBean свойство элемента управления Dynamic View Panel.

В bean-компоненте customizer вы можете управлять стилем, таким как то, что вы ищете, но вам нужно самостоятельно кодировать Java-бин. Джесси Галлахер создал отличный пример расширенного компонента настройки и даже поместил его на Github:https://github.com/jesse-gallagher/Domino-One-Offs.

Посмотрите на его сообщения в блоге на эту тему:

This Dynamic View Customizer Is Getting Into Shape Enhancing xe:dynamicViewPanel For My Own Purposes

--

Для вашего конкретного вопроса об изменении editDocument на openDocument вы можете использовать следующий небольшой пример bean-компонента customizer:

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);
  }
}

Не забудьте добавить класс в Face-config.xml, чтобы иметь возможность использовать его в качестве компонента.

Вместо компонента настройки вы можете использовать событие onColumnClick, чтобы выполнить собственное перенаправление. Вот пример:

<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>
1 нажмите в & lt; xp: viewColumn & gt; Свойство - намного проще, чем создание Бина.
Спасибо! Я пока что использовал eventHandler для решения проблемы openDocument, и я буду смотреть на реализацию bean-компонента настройки для решения других проблем. Josh Jolly
+1, .setOpenDocAsReadonly (true) работал для меня
Чарльз, кроме вопроса об использовании панели динамического просмотра.
0

context.redirectToPage (@ReplaceSubstring (context.getUrl () ToString (), & Quot;. editDocument & Quot;, & Quot; OpenDocument & Quot;));

Похожие вопросы