+ Start a Discussion

how to close the window after performing the action method on a page

 I have a blank page with an action method that performs some database inserts and finally after that I need to close this window.
following is my code.my page has only the following code:

<apex:page action="{!generatePDF}"  controller="VFC_ER_GeneratePDF"  showheader="false"  standardStylesheets="false" >

In the controller 'VFC_ER_GeneratePDF' I have a method called generatePDF with the following code.  and finally after that I want to close this window. How do I do that pls help...

public class VFC_ER_GeneratePDF {
    public string  sigID;
    public string ERID;
    public VFC_ER_GeneratePDF() {
        sigID = System.currentPageReference().getParameters().get('sigID'); 
        ERID = System.currentPageReference().getParameters().get('id'); 

      public pageReference  generatePDF() {
      PageReference pdf = New PageReference ('/apex/'+ 'vf_SignatureCaptured');
        // add parent id to the parameters for standardcontroller
        // create the new attachment
        Attachment attach = new Attachment();
        // the contents of the attachment from the pdf
        Blob body;
        try {
                // returns the output of the page as a PDF
                body = pdf.getContentAsPDF();
          catch (VisualforceException e) 
                // need to pass unit test -- current bug  
                body = Blob.valueOf('Some Text');
        attach.Body = body;
        attach.Name = ERId + '.pdf';
        attach.IsPrivate = false;
        attach.ParentId = ERId;
        insert attach;
        system.debug('Final Attachement' + attach);
        //delete the signature attachment 
          List<Attachment> attachedFiles = [select Id from Attachment where id =:sigID limit 1];
        if( attachedFiles != null && attachedFiles.size() > 0 ) 
           delete attachedFiles;
        //this is where I need to close this window.
Deepak Kumar ShyoranDeepak Kumar Shyoran
You can use window.close() on your page to close the window also can set the delay time. Put this code on your VF page inside
<script>window.close(); </script>
and it will close your window after loading your VF page and calling your method which is in your action attribute of your ApexPage.