javascript - 从命令按钮单击更改丰富的面孔扩展数据表高度

标签 javascript css jsf richfaces facelets

我是 RichFaces 和 Facelets 的新手。我正在尝试增加元素中定义的 ExtendedDataTable 的高度。我在名为“展开”的 xhtml 中有一个命令按钮。当我单击“扩展”时,我希望扩展数据表的高度发生变化(例如从 200 像素变为 700 像素)。这可能吗?如果是这样怎么办?将不胜感激!!

我正在使用 richfaces-3.3.3。

这是 Facelets 页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<title>RichFaces</title>
</head>
<body>
<rich:panel id="searchResultsPanel" header="Search Results Panel" bodyClass="no-padding">
<table cellpadding="0px" cellspacing="0px">
<tr>
<td colspan="2"><rich:extendedDataTable var="result" enableContextMenu="true" height="200px" width="935px" cellspacing="0" cellpadding="0" id="partsSearchResultsTable" rows="4" selectionMode="none">
<rich:column sortable="false" width="50">
<f:facet name="header">
Source
</f:facet>
<h:outputText value="TestColumn1" />
</rich:column>
<rich:column sortable="false" width="125">
<f:facet name="header">
Part Number
</f:facet>
<h:outputText value="TestColumn2" />
</rich:column>
<rich:column sortable="false" width="225">
<f:facet name="header">
Part Description
</f:facet>
<h:outputText value="TestColumn3" />
</rich:column>
<rich:column sortable="false" width="100">
<f:facet name="header">
HTS
</f:facet>
<h:outputText value="TestColumn4" />
</rich:column>
<rich:column sortable="false" width="65">
<f:facet name="header">
Priority
</f:facet>
<h:outputText value="TestColumn5" />
</rich:column>
<rich:column sortable="false" width="65" style="text-align: center;">
<f:facet name="header">
Flags
</f:facet>
<h:outputText value="TestColumn6" />
</rich:column>
<rich:column sortable="false" width="65">
<f:facet name="header">
Status
</f:facet>
<h:outputText value="TestColumn7" />
</rich:column>
<rich:column sortable="false" width="95">
<f:facet name="header">
Update Date
</f:facet>
<h:outputText value="TestColumn8" />
</rich:column>
<rich:column sortable="false" width="75">
<f:facet name="header">
User  Id
</f:facet>
<h:outputText value="TestColumn9" />
</rich:column>
<rich:datascroller id="datascroller" for="partsSearchResultsTable" selectedStyle="font-weight:bold" />
</rich:extendedDataTable></td>
</tr>
<tr>
<td align="center"><h:panelGroup id="resultListButtonGroup">
<a4j:commandButton value="Remove" styleClass="button" />
<h:commandButton id="archiveOrActivateBtn" value="Archive" styleClass="button" style="margin-left: 10px; margin-right: 10px;" />
<h:commandButton id="psExportBtn" value="Export Selected" styleClass="long-btn" />
<h:commandButton id="psExportXnumBtn" value="Export 15,000" styleClass="long-btn" style="margin-left: 10px;" />
<a4j:commandButton value="Expand" styleClass="button" style="margin-left: 10px;" />
</h:panelGroup></td>
</tr>
</table>
</rich:panel>
</body>
</html>

最佳答案

您可以简单地将高度保存在一个变量中,然后更新它并重新呈现表格。

也可以通过 JavaScript 来完成,像这样:

<h:outputScript>
    expandTable = function (height) {
        var edt = #{rich:component('table')},
            div = edt.mainDiv,
            body = edt.scrollingTable,
            divHeight = div.getHeight() + height,
            bodyHeight = body.getHeight() + height;

            table.setHeight(tableHeight);
            body.setHeight(bodyHeight);
        }        
</h:outputScript>

但这可能并不总是有效(即数据表的某些功能可能仍适用于旧值)。

关于javascript - 从命令按钮单击更改丰富的面孔扩展数据表高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056426/

相关文章:

html - html中 block 元素的行为

jquery droppable 仅适用于前 50% 的宽度(错误??)

javascript - Primefaces 条码宽度

javascript - p :commandButton onclick does not update/re-render on ajax request? 内的 EL 表达式

javascript - 如何计算 Chrome 扩展上的页面加载事件?

javascript - 如何包装包含在方括号内的内容,在所有出现的字符串中全局使用 span 标记?

html - CSS 语音气球宽度

jsf - CDI SessionScoped Bean 在同一 session 中产生两个实例

javascript - 切换 CSS 类 KnockoutJS

javascript - Chrome html5 文档类型更改输入宽度,但不选择