在<xp:viewcolumn> </xp:viewcolumn>中使用attrs(属性列表)

时间:2012-04-19 17:22:19

标签: xpages

我正在尝试使用attrs内的<xp:viewColumn>。以下是我的代码中的一小段代码。

<xp:viewPanel rows="5" id="viewPanel1" var="rowDocument">
  <xp:this.facets>
    <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"></xp:pager>
  </xp:this.facets>
  <xp:this.data>
    <xp:dominoView var="view1" viewName="MyView"></xp:dominoView>
  </xp:this.data>
  <xp:viewColumn columnName="$22" id="viewColumn1">
    <xp:this.attrs>
      <xp:attr name="draggable" value="true"></xp:attr>
      <xp:attr name="onDragStart">
        <xp:this.value><![CDATA[dragIt(event, "SOME VALUE");]]></xp:this.value>
      </xp:attr>
    </xp:this.attrs>
    <xp:viewColumnHeader value="Name" id="viewColumnHeader1"></xp:viewColumnHeader>
  </xp:viewColumn>
</xp:viewPanel>

基本上我添加了draggable属性来使用拖放功能。但生成的HTML不会将此属性添加到为视图数据生成的<td><span>标记中。我生成的HTML如下所示:

<table id="view:_id1:viewPanel1" class="xspDataTable">
  <thead>
    <tr>
      <th scope="col">
        <div class="xspPanelViewColumnHeader"><span><span id="view:_id1:viewPanel1:viewColumn1:__internal_header_title_id" class="xspPanelViewColumnHeader">Name</span></span></div>
      </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="xspColumnViewEnd"><span id="view:_id1:viewPanel1:0:viewColumn1:_internalViewText" class="xspTextViewColumn">Data 1</span></td>
    </tr>
    <tr>
      <td class="xspColumnViewEnd"><span id="view:_id1:viewPanel1:1:viewColumn1:_internalViewText" class="xspTextViewColumn">Data 2</span></td>
    </tr>
    ..........
  </tbody>
</table>

为什么不将属性添加到单个行数据中?还有其他办法吗?

更新:如果我将attrs添加到<xp:viewColumnHeader>,则生成的HTML代码会显示其他属性。

1 个答案:

答案 0 :(得分:0)

如果你想对生成的输出进行更多(或全部)控制,你可能更适合使用重复控件而不是viewPanel:

<xp:this.data>
    <xp:dominoView var="view2" viewName="MyView"></xp:dominoView>
</xp:this.data>

<xp:repeat id="repeat1" rows="5" value="#{view2}" var="viewRow">

    <xp:this.facets>
        <xp:text xp:key="header" disableTheme="true" escape="false">
            <xp:this.value><![CDATA[<table><tbody>]]></xp:this.value>
        </xp:text>
        <xp:text xp:key="footer" disableTheme="true" escape="false">
            <xp:this.value><![CDATA[</tbody></table>]]></xp:this.value>
        </xp:text>
    </xp:this.facets>

    <tr>
        <xp:text escape="false" tagName="td" value="#{viewRow.$22}">
            <xp:this.attrs>
                <xp:attr name="draggable" value="true"></xp:attr>
                <xp:attr name="onDragStart">
                    <xp:this.value><![CDATA[dragIt(event, "SOME VALUE");]]></xp:this.value>
                </xp:attr>
            </xp:this.attrs>
        </xp:text>
    </tr>

</xp:repeat>