星期五, 8月 20, 2010

[Asp.Net] Window.Open 使用postback

剛好遇到一個需求,我希望按了按鈕後在response後吐出xls檔


protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.BufferOutput = false;  // for large files
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("content-disposition", "filename=test.xls");

        DataTable test = this.GetReportTeacherPerfectList(1, 5, "", "");
        DataSet ds = new DataSet();
        ds.Tables.Add(test);
        BigdControl.ExportToExcel.DoExcel(ds,Response.OutputStream);
        Response.End();
    }
由於postback按鈕之前都加了的按鈕有加了遮罩效果的js,因此以上的方法會讓網頁的遮掉無法清除掉。
因此才會想到用window.open from postback 的方法來處理。把xls部份已至window.open的連結中處理。
可參考以下連結。
[JavaScript]window.open的post與get傳遞參數比較

這是另外找到新開視窗的方法,但無法解決我清除遮掉視窗的問題
Can you open a new window from a post back?
//opens new window from image button and casues postback 
this.myimagebutton.Attributes.Add("onClick", "this.form.target='_blank'");

沒有留言:

張貼留言

留個話吧:)