2

データベースからのドキュメントを表示する次のページがあります。達成しようとしているのは、データベースに新しいドキュメントが追加された場合に、このページを自動的に更新または更新することです。それを達成するために、コントローラーまたはページで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;

    }
4

2 に答える 2

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;
}
于 2012-05-31T14:58:55.363 に答える
1

または、ストリーミング API を使用することもできます。

http://www.salesforce.com/us/developer/docs/api_streaming/index.htm

于 2012-06-03T01:42:08.100 に答える