我有一个表,其中一列用于大量计算(=需要很长时间等待)。JSF <h:outputText ...>绑定到表内的bean>需要ajax支持
我想向我的页面添加Ajax支持,以便表格显示不完整,几秒钟后此Ajax会添加此特定列的数据。
我该怎么做?
谢谢。
我有一个表,其中一列用于大量计算(=需要很长时间等待)。JSF <h:outputText ...>绑定到表内的bean>需要ajax支持
我想向我的页面添加Ajax支持,以便表格显示不完整,几秒钟后此Ajax会添加此特定列的数据。
我该怎么做?
谢谢。
您需要为此推送或类似的技术。看看icepush,primefaces poll。 Richfaces也提供了相近的功能。
更新:要实现这与一些JavaScript只有你可以在页面呈现后发出ajax更新。这可能类似于:
$(function() {
var event = document.createEvent("MouseEvents")
event.initEvent("click", true, true)
jsf.ajax.request(document.getElementById("my-form:my-command-link"), event, {render: "myTableId"})
})
其中my-command-link引用h-commandLink内部窗体,其ID为my-form。这个commandLink应该有一个附加的动作来填充缺失的数据。当然你可以用css隐藏命令链接。结果将是一个带有空表和ajax更新的初始页面,用于在后台获取丢失的日期处理。
在这个例子中,我不是100%确定事件初始化,你可能需要自己微调这个,但是我已经用jsf.ajax.request这个方法成功了。
嗨,它看起来o.k但我怎么停止轮询后,我有表中的所有数据?谢谢 – user1082094
Primefaces轮询可以通过它的api来停止,更多地探索示例。我不清楚icepush,通常你不会停止它,它只是挂起等待服务器广播,可能不会来。 – mrembisz
嗨,是否有另一种方法来做到这一点?我需要一个会触发ajax函数来获取数据的事件。像onAfterLoad这样的事件。谢谢 – user1082094
,如果你想使用h的Ajax支持:inputText的那么这里是实施
在XHTML文件
<h:inputText style=" width : 70px;" id="dempID"
value="#{InformationLoan.instance.Code}">
<a:support event="onchange" limitToList="true" reRender="nameID" // form ID i haved use here.
action="#{InformationController.codeValue(InformationLoan.instance.Code)}"/>
</h:inputText>
在豆文件
public void codeValue(String value){
try{
info("HERE IS YOUR VALUE : " + value);
// TYPE YOUR CODE......
}catch(Exception e){
e.printStackTrace();
}
}
嗨,我需要在表中的h:outputText上的ajax事件。 – user1082094
你能发布相关(查看)代码? –