0

我将 syntaxhighlighter 库添加到我的项目中以查看 XML 文件。

出于某种原因,在对话框外使用 syntaxhighlighter 时,我可以看到 CSS 样式,但在对话框内看不到。

这不起作用:

<p:commandButton id="button" 
                         value="View" 
                         oncomplete="hdsWidgetVar.show()"
                         update=":mainForm:hdsForm"
                         disabled="#{object.disableButton}"
                         icon="ui-icon-search"
                         style="float: right"/>
    </p:row>
</p:panelGrid>
<f:verbatim><br/></f:verbatim>
<p:dialog id="hdsDialog" 
          widgetVar="hdsWidgetVar"
          header="HDS" 
          width="800"
          showEffect="clip"
          hideEffect="clip"
          position="left"
          appendTo="@(body)"
          dynamic="true" >
    <h:form id="hdsForm">
        <pre class="brush: xml">    
            <h:outputText value="#{object.selectedObjectSet.hds}" escape="true" />
        </pre>
    </h:form>

</p:dialog>

我不能使用 dynamic="false" 因为当用户按下按钮时我需要刷新对话框文本。

有什么解决方法吗?

谢谢

4

2 回答 2

0

这将解决问题:

  <p:commandButton id="button" 
            value="View" 
            oncomplete="SyntaxHighlighter.highlight();udmWidgetVar.show();"
            process="@form"
            update="@this :hdsForm"
            disabled="#{object.disableButton}"
            icon="ui-icon-search"
            style="float: right"/>

和:

 <p:dialog id="hdsDialog" 
          widgetVar="hdsWidgetVar"
          header="HDS" 
          width="800"
          showEffect="clip"
          hideEffect="clip"
          position="left"
          appendTo="@(body)"
          dynamic="false">
    <h:panelGroup id="hdsForm" >
        <pre class="brush: xml">    
            <h:outputText value="#{object.selectedObjectSet.hds}" escape="true" />
        </pre>
    </h:panelGroup>
于 2014-03-21T17:53:09.987 回答
0

你是嵌套表格吗?usingappendTo是一种避免嵌套的解决方法。如果可以的话,我不会使用它。

如果您可以分开表格,这应该可以工作:

<h:form>    
    <p:panelGrid>
        <p:row>
            <p:commandButton id="button" 
                value="View" 
                oncomplete="hdsWidgetVar.show()"
                process="@form"
                update="@this :hdsForm"
                disabled="#{object.disableButton}"
                icon="ui-icon-search"
                style="float: right"/>

        </p:row>
    </p:panelGrid>
</h:form>

<f:verbatim><br/></f:verbatim>

<p:dialog id="hdsDialog" 
          widgetVar="hdsWidgetVar"
          header="HDS" 
          width="800"
          showEffect="clip"
          hideEffect="clip"
          position="left"
          appendTo="@(body)"
          dynamic="true" >
    <h:form id="hdsForm">
        <pre class="brush: xml">    
            <h:outputText value="#{object.selectedObjectSet.hds}" escape="true" />
        </pre>
    </h:form>

</p:dialog>

如果你不能,这应该去:

<h:form>    
    <p:panelGrid id="panelGrid">
        <p:row>
            <p:commandButton id="button" 
                value="View" 
                oncomplete="hdsWidgetVar.show()"
                process="panelGrid"
                update="@this hdsForm"
                disabled="#{object.disableButton}"
                icon="ui-icon-search"
                style="float: right"/>

        </p:row>
    </p:panelGrid>

    <f:verbatim><br/></f:verbatim>

    <p:dialog id="hdsDialog" 
              widgetVar="hdsWidgetVar"
              header="HDS" 
              width="800"
              showEffect="clip"
              hideEffect="clip"
              position="left">
        <h:panelGroup id="hdsForm">
            <pre class="brush: xml">    
                <h:outputText value="#{object.selectedObjectSet.hds}" escape="true" />
            </pre>
        </h:panelGroup>

    </p:dialog>
</h:form>

但也许这不是与dynamic. 更有可能它与 lib-to-work-with-ajax 相关。

于 2014-03-21T09:30:17.020 回答