Welcome to MSDN Blogs Sign in | Join | Help

Redirecting in EP user control to download a file

If you have a webpage to generate files such as word doc or pdf and you need to invoke them in a button click event of  an user control used in EP and allow the user to download the file through the browser. generally you would think of calling response.redirect function. This function  redirects to the download page and since it sets the mime type as the respective file, it prompts the user to save the file to the local machine or open it using the right application. Since AX usercontrols inherently  uses AJAX postbacks, the postback progressbar will continue to display "Loading Information" even after the file is downloaded when response.redirect is used. This is because response.redirect supposed to replace the current page displayed in the browser, but in this case it actually streams file and does not replace the currently rendered page in the browser. For such scenarios, instead of using response.redirect, you could execute a client side javascript to push the generated file in a new browser window and avoid the above issue.
 
protected void Button1_Click(object sender, EventArgs e)
    {
        AxUrlMenuItem menuItem = new AxUrlMenuItem("EPDocuGet");
        DataSetViewRow row = dsEPCustInvoiceJournalInfo.GetDataSet().DataSetViews[0].GetCurrent();
        AxTableContext context = AxTableContext.Create(row.GetDefaultTableDataKey(row.DataSetView.Metadata.RootDataSource));
        menuItem.MenuItemContext = context;
  
        //Response.Redirect(menuItem.Url.ToString());
 
        string downloadURL = "window.open('" + menuItem.Url.ToString() + "', '_blank', '' );";
        ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", downloadURL, true);
 
 
    }
 
Published Friday, September 11, 2009 4:52 AM by meysun
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Redirecting in EP user control to download a file

Tuesday, September 22, 2009 12:02 AM by JeffreyL

Hi Mey,

Good stuff again.  But I have a question, probably not related to redirecting, rather EPDOCUGET itself.  How (the best way) would you implement EPDOCUGET if there's "more than one" file associated with a record (i.e. ItemId)?  My plan is to show all the attached documents related to an ItemId in EPCSSItempDescription.aspx.  Thanks much in advance.  Thx.

Kind regards, JL

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker