0

jsf:

<rich:dataTable>
...
    <h:column>
     <f:facet name="header">
      <h:commandLink action="fileSearchSort" styleClass="theader">
       Name
      </h:commandLink>
     </f:facet>
       #{f.name}
    </h:column>
...
</rich:dataTable>

これを行う場合:

...
    <h:column>
      <h:commandLink action="fileSearchSort" styleClass="theader">
       <f:facet name="header">
        Name
       </f:facet>
      </h:commandLink>
       #{f.name}
    </h:column>
...

ヘッダーのラベル「Name」は消えます。

f:facetヘッダー全体を次のように実行することは可能commandLinkですか?

ありがとう。

4

2 に答える 2

2

表示されている動作に関しては<f:facet>、ファセットを所有することになっているJSFコンポーネントの直接の子としてネストされます。この場合は、<h:column>です。<h:commandLink>代わりに内部に配置すると、のファセットになります<h:commandLink>が、そのコンポーネントは名前のファセットをサポートしていないため、header何も表示されません。

具体的な機能要件に関しては、JSFコンポーネントはデフォルトでインライン<h:commandLink>要素であるHTML要素をレンダリングします。親HTML要素のスペース全体を占めるようにする場合は、代わりにブロック要素を作成する必要があります。そのスタイルクラスに追加するだけで十分です。<a><th><a>display: block

.theader {
    display: block;
    ...
}
于 2011-07-02T20:07:35.693 に答える
0

ファセットの要素はある種のコンテナにレンダリングされるため、領域全体を消費する<h:commandLink>a<span>またはタグ内に配置すると、commandLinkが機能するはずです。<div>

<h:column>
  <f:facet name="header">
    <h:commandLink action="fileSearchSort" styleClass="theader">
      <span style="width: 100%; height: 100%;">
      Name
    </h:commandLink>
  </f:facet>
  #{f.name}
</h:column>  
于 2011-07-01T18:55:41.600 に答える