2010-04-20 131 views
1

在Visualforce,我使用的是<apex:dataTable>组件,如下所示:Visualforce dataTable:有没有办法阻止它渲染cellpadding属性?

<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干扰。

有没有办法从渲染的<apex:dataTable>的CELLPADDING和CELLSPACING属性停止Visualforce?

回答

0

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

1

有关(在CSS一样),这些提供自己的价值观是什么?丑陋但会起作用。

其他 - 属性移除/重新申请使用JavaScript类?

我不认为,即使去除Salesforce的CSS(<apex:page ... showHeader="false">)将完成这一任务。

0

我不知道你是否能在Visualforce抑制这些属性。

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

cellpadding的CSS等效为'padding',而cellspacing的CSS等效为'border-spacing'。就我所知,后者只适用于TD类型的元素。

.cv_table TD { 
    border-spacing: 5px; 
    padding: 5px; 
} 
+0

是的,我在CSS一个虔诚的信徒,但CELLPADDING属性似乎是压倒一切的,这就是为什么我想摆脱它。 – codeulike 2010-04-22 08:21:11

+0

尝试使用!重要的参数后,例如“border-spacing:5px!important;” *应该*用一些运气覆盖其他值。否则,如下所示,使用low-fi重复&html组合,这是我通常的方式。 – 2011-05-24 03:26:44

2

上文提到,你尝试删除的属性?指定ID

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

然后

<script type="text/javascript"> 
    document.getElementById("myTable").removeAttribute("cellpadding"); 
    document.getElementById("myTable").removeAttribute("cellspacing") 
</script> 
相关问题