我有以下页面显示数据库中的文档,我想要完成的是在数据库中添加新文档时自动刷新或更新此页面。有没有办法可以在我的控制器或页面中使用AJAX或拉动器来实现这一目标?
页:
<apex:pageBlockTable value="{!docs}" var="d" rendered="{!NOT(ISNULL(docs))}" Title="Documents">
<apex:column headerValue="Name">
<apex:outputText value="{!d.Name}"/>
</apex:column>
</apex:pageBlockTable>
位指示
public List<FTPAttachment__c> getDocs()
{
docs= [Select Name from FTPAttachment__c where Case__c = :cse.id];
return docs;
}
答案 0 :(得分:2)
听起来你正在寻找<apex:actionPoller>
标签:
<apex:actionPoller action="{!refreshDocs}" rerender="docsTable" interval="5" />
<apex:pageBlockTable id="docsTable" value="{!docs}" var="d" rendered="{!NOT(ISNULL(docs))}" Title="Documents">
<apex:column headerValue="Name">
<apex:outputText value="{!d.Name}"/>
</apex:column>
</apex:pageBlockTable>
您可以让refreshDocs()
方法明确重新填充docs
列表,但由于您已经在getter中执行了此操作(将在重新呈现表时调用),此方法可以回来而不做任何特别的事情:
public List<FTPAttachment__c> getDocs() {
return [Select Name from FTPAttachment__c where Case__c = :cse.id];
}
public PageReference refreshDocs() {
return null;
}
答案 1 :(得分:1)