2012-05-31 40 views
2

我有以下页面,显示来自数据库的文件,我试图完成的是如果在数据库中添加新文档时自动刷新或更新此页面。有没有一种方法可以使用AJAX或拉我的控制器或页面来实现这一目标?Salesforce页面自动更新数据库更新

页:

<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

听起来你正在寻找的<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列表,但是因为你已经这么做了在你吸气时(表被重新呈现将被调用),这种方法可以只返回没有做什么特别的东西:

public List<FTPAttachment__c> getDocs() { 
    return [Select Name from FTPAttachment__c where Case__c = :cse.id]; 
} 
public PageReference refreshDocs() { 
    return null; 
} 
+0

感谢,这正是我想要的:) – raym0nd