2

force.com apex テンプレートの pageBlockSection 内にテーブルがあります。これは、いずれかのセル内で outputText タグを使用しようとするまでは正常に機能します。このタグを使用すると、余分なセルと行がマークアップに追加されます。ただし、pageBlockSection タグ内にテーブルをネストしない場合、そのようなセルは追加されません。

outputText を間違って使用していますか? それとも force.com にバグがありますか?

この問題を再現する最小限のマークアップを次に示します。

<apex:pageBlock title="My Page Block">    
  <apex:pageBlockSection title="My Section">   
    <table>
      <tr><th>1</th><th>2</th></tr>
      <tr>
        <td>
          <apex:outputText value="{0}">
            <apex:param value="one" />
          </apex:outputText>
        </td>
        <td>
          <apex:outputText value="{0}">
            <apex:param value="two" />
          </apex:outputText>
        </td>
      </tr>
    </table>
  </apex:pageBlockSection>    
</apex:pageBlock>

force.com によってレンダリングされた出力は次のとおりです。

<table>
  <tbody>
    <tr><th>1</th><th>2</th></tr>
    <tr>
      <td></td>
      <td colspan="2" class="dataCol  first ">one</td>
    </tr>
    <tr>
      <td colspan="2" class="dataCol "></td>
      <td></td>
      <td colspan="2" class="dataCol ">two</td>
    </tr>
    <tr>
      <td colspan="2" class="dataCol  last "></td>
    </tr>
  </tbody>
</table>
4

2 に答える 2

4

それが実際にバグであるかどうかはわかりませんが、<apex:pageBlockSection>ネストされたコンテンツがテーブルに自動的に追加され、独自のテーブルと衝突することが原因であると考えています。

<apex:pageBlockSection>を削除してテーブルを に直接配置するか、独自のテーブルを削除して代わりに要素<apex:pageBlock>を活用することをお勧めします。<apex:pageBlockSectionItem>

<apex:pageBlock title="My Page Block">    
  <apex:pageBlockSection title="My Section">
    <apex:pageBlockSectionItem >
      1
    </apex:pageBlockSectionItem>
    <apex:pageBlockSectionItem >
      2
    </apex:pageBlockSectionItem>
    <apex:pageBlockSectionItem >
      <apex:outputText value="{0}">
        <apex:param value="one" />
      </apex:outputText>
    </apex:pageBlockSectionItem>
    <apex:pageBlockSectionItem >
      <apex:outputText value="{0}">
        <apex:param value="two" />
      </apex:outputText>
    </apex:pageBlockSectionItem>
  </apex:pageBlockSection>
</apex:pageBlock>
于 2012-05-30T00:08:12.900 に答える
1

I was able to get around this issue by placing the table within an outputPanel tag.

<apex:pageBlockSection>
   <apex:outputPanel>
      <table>
      </table>
   </apex:outputPanel>
</apex:pageBlockSection>
于 2014-12-09T14:44:37.893 に答える