1

在 Visualforce 中,我使用的<apex:dataTable>组件如下:

<apex:dataTable value="{!Qualifications}" var="qual" styleClass="cv_table" >
    <!-- etc...  -->

...然后我使用 CSS 通过类名来设置表格的样式。麻烦的是,VisualForce 像这样呈现 HTML:

<table class="cv_table" id="j_id0:j_id26" border="0" cellpadding="0" cellspacing="0">
    <!-- etc...  -->

class 属性如我所愿,但也指定了 cellpadding 和 cellspacing,这会干扰我的 CSS。

有没有办法阻止 Visualforce 呈现 cellpadding 和 cellspacing 属性<apex:dataTable>

4

4 回答 4

2

上面提到的,您是否尝试过删除属性?指定标识

<apex:dataTable id="myTable" value="{!Qualifications}"...

然后

<script type="text/javascript">
  document.getElementById("myTable").removeAttribute("cellpadding");
  document.getElementById("myTable").removeAttribute("cellspacing")
</script>
于 2011-05-10T17:29:30.693 回答
1

为这些提供您自己的值(与 CSS 中相同)怎么样?丑陋但会工作。

除此之外 - 属性删除/使用 JavaScript 重新应用类?

我认为即使删除 SalesForce CSS ( <apex:page ... showHeader="false">) 也无法完成这项任务。

于 2010-04-20T11:17:27.133 回答
0

我不知道您是否可以在 Visualforce 中抑制这些属性。

但是,如果您真正要问的问题是我如何不让这些属性影响我的整体设计,那么我认为 CSS 可以提供帮助。

的 CSS 等价物cellpadding是 'padding',而 CSS 等价物cellspacing是 'border-spacing'。据我所知,后者仅适用于 TD 类型的元素。

.cv_table TD {
    border-spacing: 5px;
    padding: 5px;
}
于 2010-04-22T05:23:40.923 回答
0

看起来放弃<apex:dataTable>标签并使用更低保真<apex:repeat>标签可能是做到这一点的唯一方法。

于 2010-04-30T15:37:53.747 回答