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>?

È stato utile?

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top