0

我在visualforce页面中有一个HTML表格设置,其中一些功能似乎超出了标准apex:datatable的掌握范围。当用户更新其中一行的信息时,我正在尝试重新呈现表,以便反映更新的值。如果我使用 apex:datatable 这工作正常,但是我失去了很多我必须在我的表中添加的功能。

结构相当简单,但它是这样的:

    <table>
        <thead>
            <tr>
                <th>Col 1</th>
            </tr>
        </thead>

        <tbody>
        <apex:outputPanel id="table-panel">

            <apex:repeat value="{!Parent}" var="row">
                <tr name="{!row.Id}">
                    <td>Cell 1</td>
                </tr>
                <apex:repeat value="Child__r" var="child">
                    <tr name="child-{!row.Id}">
                        <td>Child Cell 1</td>
                    </tr>
                </apex:repeat>      
            </apex:repeat>
        </apex:outputPanel>
        </tbody>

    </table>

这本质上是我想要完成的功能,下面列出了父对象的子对象。截至目前,重新渲染将我所有的表格元素转换为跨度并完全乱码。是否可以重新渲染非视觉力组件,或者,有没有办法可以在 apex:datatable 中重现此功能?

谢谢!

4

2 回答 2

0

这简单。试试这个,即使在重新渲染后对我也很好:

<apex:panelGrid columns="1" width="400" id="myTable">

    <apex:facet name="header">
        <apex:outputText value="My table header"/>
    </apex:facet>

    <apex:repeat value="{!Object}" var="row">

        <apex:outputText value="{!row.name}" style="display:block;font-weight:bold;"/>

        <apex:repeat value="{!row.ObjectChild__r}" var="child">

            <apex:outputText value="{!child.name}"/> <br/>

        </apex:repeat> 

    </apex:repeat>         

</apex:panelGrid>

不,您可以重新渲染您的“myTable”。

于 2012-08-14T12:02:16.587 回答
0

实际上,我最终发现了 apex:outputPanel 元素的漂亮的小“布局”属性。将此设置为“阻止”完全解决了与此相关的所有问题。

于 2012-08-31T18:44:11.043 回答