DataTable VisualForce: Есть ли способ остановить его от рендеринга атрибута CellPadding?
-
28-09-2019 - |
Вопрос
В 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... -->
Атрибут класса там, как я хотел, но есть также CellPadding и CleleSpacing, что вмешивается в мои CSS.
Есть ли способ остановить VisualForce от рендеринга атрибутов CellPadding и CellSpacing для <apex:dataTable>
?
Решение 4
Похоже, что отказаться от <apex:dataTable>
тег и используя более низкий <apex:repeat>
Тег может быть единственным способом сделать это.
Другие советы
Упоминается выше, вы пытались удалить атрибуты? Укажите идентификатор
<apex:dataTable id="myTable" value="{!Qualifications}"...
тогда
<script type="text/javascript">
document.getElementById("myTable").removeAttribute("cellpadding");
document.getElementById("myTable").removeAttribute("cellspacing")
</script>
Как насчет предоставления ваших собственных ценностей для них (то же самое, что и в CSS)? Некрасиво, но будет работать.
Кроме того, атрибут снятие / повторно включение класса с JavaScript?
Я не думаю, что даже удаление Salesforce CSS (<apex:page ... showHeader="false">
) выполнит эту задачу.
Я не знаю, сможете подавить эти атрибуты в VisualForce.
Но если вопрос, который вы действительно спрашиваете, это то, как я не позволяю этим атрибутам повлиять на мой общий дизайн, то я думаю, что CSS может помочь.
CSS, эквивалентный cellpadding
это «прокладка», а CSS, эквивалент cellspacing
это «межбище». Последнее работает только на элементах типа TD, насколько я знаю.
.cv_table TD {
border-spacing: 5px;
padding: 5px;
}