Я запускаю Rich Faces 3.x, и у меня есть subTable в dataTable, который я бы хотел переключить show/hide, предпочтительно используя Java-скрипт. То, что я до сих пор ...JSF subTable Развернуть/свернуть
<c:set var="plusIcon" value="/sprites/images/collapsed.gif"/>
<c:set var="minusIcon" value="/sprites/images/expanded.gif"/>
...
<rich:dataTable id="bookList_dt" [...]>
<rich:column>
<h:graphicImage id="expand" value="/images/expanded.gif" onclick="toggleDetails(this);"/>
</rich:column>
<rich:column>
<f:facet name="header">ID</f:facet>
<h:outputText value="#{_item.bookId}"/>
</rich:column>
[...]
<rich:subTable value="#{_item.relatedVersions} var="_relatedItem" id="relatedVersionsList">
<rich:column>
<f:facet name="header">ID</f:facet>
<h:outputText value="#{_relatedItem.bookId}"/>
</rich:column>
[...]
</rich:subTable>
</rich:dataTable>
И мой JavaScript до сих пор ...
function toggleDetails(image) {
var detailsId = image.id.substring(0, image.id.lastIndexOf(':')) + ':relatedVersionsList';
var details = document.getElementById(detailsId);
if (details.style.display == 'none') {
details.style.display = 'block';
image.src = '#{minusIcon}';
} else {
details.style.display = 'none';
image.src = '#{plusIcon}';
}
В настоящее время я получаю ошибку, заявив, что детали является нулевым
EDIT: Я слышал, что использование класса подклассов HtmlSubTable может работать, но я не вижу примеров его использования, у кого есть идеи?
SubTable теперь исчезает :) Есть ли простой способ изменить значок? – Ace
Для гладкого (dis) внешнего вида рассмотрим возможность использования эффектов jQuery, таких как fade in/fade out и т. Д. Что касается изменения значка, я бы предложил загрузить изображение спрайта, содержащее как расширенные, так и свернутые изображения, и дополнительно переключить «background-position», т.е. 'JQuery (это) .toggleClass ('расширен')'. – skuntsel
Я не совсем понимаю. У меня есть оба изображения в c: Задайте локальные переменные, можно ли переключить image.source в какой-либо if/else, интегрированный с предоставленным jQuery? – Ace