syntaxhighlighter CSS无效

时间:2014-03-20 21:17:35

标签: jsf-2 primefaces syntaxhighlighter

我将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”,因为我需要在用户按下按钮时刷新对话框文本。

有解决方法吗?

由于

2 个答案:

答案 0 :(得分:0)

你是否在筑巢?使用appendTo是一种避免嵌套的解决方法。如果可以的话,我不会用它。

这应该有用,如果你可以分开表格:

<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相关的问题。更有可能是与ajax相关的lib-to-work。

答案 1 :(得分: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>