0
我有這個ASP.Net Web應用程序,並在我的一個頁面我使用JQuery JQGrid,我想能夠導出JQGrid到Excel表,所以使用JavaScript我收集在數組,然後將值稱爲一個WebService,以填補在DataGrid的價值觀,我成功地做到了這一切,除了在沒有出現文件下載WebService的出口,這是我的web服務代碼:Excel導出ASP.NET Web服務
[WebMethod]
public void GetData(object[] Values)
{
DT_ToFill.Columns.Add("CaseID");
DT_ToFill.Columns.Add("SR");
foreach (object Value in Values)
{
Dictionary<string, object> DictVals = new Dictionary<string, object>();
DictVals = (Dictionary<string, object>)Value;
string CaseID = DictVals["CaseID"].ToString();
string SR = DictVals["SR"].ToString();
object[] Obj = new object[2] { CaseID, SR };
DT_ToFill.Rows.Add(Obj);
}
ExportToExcel(DT_ToFill, Context.Response);
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
public void ExportToExcel(DataTable dt, HttpResponse Response)
{
GridView GridView1 = new GridView();
GridView1.DataSource = dt;
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "inline;filename=Schedule_ExcelSheet.xls");
Response.Charset = "";
Response.ContentType = "application/ms-excel";
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.UTF8;
StringWriter sw = new StringWriter();
HtmlTextWriter ht = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(ht);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
public void VerifyRenderingInServerForm(Control control)
{
}
幫助請... 謝謝
是的,你的對@ @ Forrest,但我不明白第二部分,我該怎麼做......?! – YMELS 2012-08-11 19:03:27
嗨。對不起,我會盡力澄清。 – jForrest 2012-08-12 19:35:09
如果您打開一個新窗口或在頁面上添加一個iframe,文件下載將起作用。最簡單的可能是一個新窗口。所以:1)現在要做的是將數據發送到服務器2)打開一個新窗口。將新窗口指向一個URL,它會像你現在正在做的那樣發送xls(也許使用用戶會話發送正確的pdf回來?)3)當新窗口加載時,它會下載xls – jForrest 2012-08-12 19:41:37