Visualforce dataTable: c'è un modo per fermarlo dal rendere attributo cellpadding?
-
28-09-2019 - |
Domanda
In Visualforce, sto usando una componente <apex:dataTable>
come segue:
<apex:dataTable value="{!Qualifications}" var="qual" styleClass="cv_table" >
<!-- etc... -->
... e poi sto usando CSS per lo stile della tabella, tramite il nome della classe. Il problema è che, Visualforce rende HTML in questo modo:
<table class="cv_table" id="j_id0:j_id26" border="0" cellpadding="0" cellspacing="0">
<!-- etc... -->
L'attributo di classe è là come avrei voluto, ma c'è anche CELLPADDING e CELLSPACING specificato, che interferiscono con la mia CSS.
C'è un modo per fermare Visualforce dal rendere gli attributi cellpadding e cellspacing per un <apex:dataTable>
?
Soluzione 4
Sembra che abbandonare il tag <apex:dataTable>
e utilizzando il più low-fi tag <apex:repeat>
potrebbe essere l'unico modo per farlo.
Altri suggerimenti
Di cui sopra, hai provato a rimuovere gli attributi? Specificare l'ID
<apex:dataTable id="myTable" value="{!Qualifications}"...
poi
<script type="text/javascript">
document.getElementById("myTable").removeAttribute("cellpadding");
document.getElementById("myTable").removeAttribute("cellspacing")
</script>
Che dire di fornire i propri valori per questi (lo stesso come nel CSS)? Brutto ma avrebbe funzionato.
Oltre a questo -? Attributo rimozione / riapplicare la classe con JavaScript
Non credo che la rimozione anche di Salesforce CSS (<apex:page ... showHeader="false">
) compirà questo compito.
Non so se è possibile sopprimere quegli attributi a Visualforce.
Ma se la domanda si sta realmente chiedendo è come faccio a non lasciare questi attributi influenzano il mio disegno complessivo, quindi penso che i CSS può aiutare.
L'equivalente CSS di cellpadding
è 'padding', e l'equivalente CSS di cellspacing
è 'border-spacing'. Quest'ultimo funziona solo su elementi di tipo TD per quanto ne so.
.cv_table TD {
border-spacing: 5px;
padding: 5px;
}