Salesforce页面自动更新数据库更新

时间:2012-05-31 13:27:46

标签: salesforce apex-code visualforce

我有以下页面显示数据库中的文档,我想要完成的是在数据库中添加新文档时自动刷新或更新此页面。有没有办法可以在我的控制器或页面中使用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;

    }

2 个答案:

答案 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)