0

这个例子

我正在尝试生成一个表,其中动态添加或删除列,depeindig 用户输入。问题是,空列仍然可见(见图)

我目前的方法是使用 xsl:if。(见代码片段)

<fo:table table-layout="fixed" width="100%" font-family="Helvetica" font-size="12pt">
                        <fo:table-body start-indent="5pt">
                            <fo:table-row>
                                <fo:table-cell>
                                    <fo:block>
                                    <xsl:if test="boolean(./targetAgreements/targetAgreement/area/@visible = 'true')">
                                        Area
                                        </xsl:if>
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
                                    <fo:block>
                                    <xsl:if test="boolean(./targetAgreements/targetAgreement/brand/@visible = 'true')">
                                        Brand
                                        </xsl:if>
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
                                    <fo:block>
                                     <xsl:if test="boolean(./targetAgreements/targetAgreement/currentTarget/@visible = 'true')">
                                        Current Target
                                        </xsl:if>
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
...

如果我尝试用 xsl 包围表格单元格:如果它告诉我,则该表格行需要至少一个表格单元格作为子元素。

如何完全删除空列?

谢谢!!

4

1 回答 1

0

我做了某种解决方法...

第一个表格单元始终存在(没有 xsl:if)。以下单元格被 xsl:if 包围。

看一个例子:

<fo:table table-layout="fixed" width="100%" font-family="Helvetica" font-size="12pt">
      <fo:table-header >
           <fo:table-row font-weight="bold" background-color="rgb(133,133,133)">
                <fo:table-cell>
                    <fo:block>
                        <xsl:value-of select="./headlines/headline[1]" />
                    </fo:block>
                </fo:table-cell>
                <xsl:if test="boolean(./targetAgreements/targetAgreement/brand/@visible = 'true')">
                    <fo:table-cell>
                        <fo:block>
                            <xsl:value-of select="./headlines/headline[2]" />
                        </fo:block>
                    </fo:table-cell>
                </xsl:if>
                <xsl:if test="boolean(./targetAgreements/targetAgreement/currentTarget/@visible = 'true')">
                    <fo:table-cell>
                        <fo:block>
                            <xsl:value-of select="./headlines/headline[3]" />
                        </fo:block>
                     </fo:table-cell>
                </xsl:if>
...
于 2013-10-30T10:23:00.573 回答