gpt4 book ai didi

jsf - 展开 Datatable JSF 中表格行的折叠

转载 作者:行者123 更新时间:2023-12-04 06:59:18 24 4
gpt4 key购买 nike

我一直在尝试使用核心 JSF 实现表格行展开/折叠的功能,而且我必须保留排序。在核心 JSF 中有没有办法实现这个功能?

最佳答案

如果你坚持只使用引用实现,那么你就不能使用嵌套的 h:dataTable和/或 h:panelGroup和一个很好的 CSS 镜头,让它很好地对齐。然后,您可以使用 JavaScript 以智能方式显示/隐藏行详细信息。

这是一个基本的开球示例:

<h:dataTable value="#{bean.orders}" var="order">
<h:column>
<h:panelGrid columns="3">
<h:graphicImage id="expand" value="expand.gif" onclick="toggleDetails(this);" />
<h:outputText value="#{order.id}" />
<h:outputText value="#{order.name}" />
</h:panelGrid>
<h:dataTable id="details" value="#{order.details}" var="detail" style="display: none;">
<h:column><h:outputText value="#{detail.date}" /></h:column>
<h:column><h:outputText value="#{detail.description}" /></h:column>
<h:column><h:outputText value="#{detail.quantity}" /></h:column>
</h:dataTable>
</h:column>
</h:dataTable>
toggleDetails()函数看起来像(请注意,它考虑了 JSF 生成的客户端 ID):
function toggleDetails(image) {
var detailsId = image.id.substring(0, image.id.lastIndexOf(':')) + ':details';
var details = document.getElementById(detailsId);
if (details.style.display == 'none') {
details.style.display = 'block';
image.src = 'collapse.gif';
} else {
details.style.display = 'none';
image.src = 'expand.gif';
}
}

关于jsf - 展开 Datatable JSF 中表格行的折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2133985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com