2010-04-20 119 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> 
相關問題