<input type="button" onclick="$find('ReportViewer1').exportReport('PDF');" value="匯出PDF" /> /*ReportViewer1為控制項id*/ /*如果因為套用MasterPage導致ReportViewer1名稱亂掉的話,請嘗試<%= ReportViewer1.ClientID %>來取得該控制項id*/
而在ReportViewer的元件中,有一個屬性叫做【ShowToolBar】,你可以設定為false,則在呈現的時候ToolBar則會整個隱藏,如下圖
ShowToolBar=True的情形
ShowToolBar=False的情形
不過如果你捨不得將整個ToolBar都隱藏的話,在ReoprtViewer的屬性中有一個部份是針對ToolBar來做細微設定,如下圖
如果只想要隱藏匯出功能的話,可以把設定ShowExportControls=False 即可,設定完之後記得把剛剛的ShowToolBar=False -> ShowToolBar=True,則出現結果如下圖
當把匯出的選項從Toolbar關掉之後,如果需要自己撰寫匯出的功能其實也很簡單,有興趣可以參考LocalReport.Render 方法,我們在該aspx頁面中加入一個Button來產生excel,然後針對其撰寫Click事件之程式碼如下
01.
Warning[] warnings;
02.
string
[] streamids;
03.
string
mimeType;
04.
string
encoding;
05.
string
extension;
06.
07.
byte
[] bytes = ReportViewer1.LocalReport.Render(
08.
"Excel"
,
null
,
out
mimeType,
out
encoding,
out
extension,
09.
out
streamids,
out
warnings);
10.
11.
Response.Clear();
12.
Response.AddHeader(
"Content-Disposition"
,
"attachment; filename=sample.xls"
);
13.
Response.AddHeader(
"Content-Length"
, bytes.Length.ToString());
14.
Response.ContentType =
"application/octet-stream"
;
15.
Response.OutputStream.Write(bytes, 0, bytes.Length);
另一個產生Pdf的按鈕事件之程式碼如下
01.
Warning[] warnings;
02.
string
[] streamids;
03.
string
mimeType;
04.
string
encoding;
05.
string
extension;
06.
07.
byte
[] bytes = ReportViewer1.LocalReport.Render(
08.
"Pdf"
,
null
,
out
mimeType,
out
encoding,
out
extension,
09.
out
streamids,
out
warnings);
10.
11.
Response.Clear();
12.
Response.AddHeader(
"Content-Disposition"
,
"attachment; filename=sample.pdf"
);
13.
Response.AddHeader(
"Content-Length"
, bytes.Length.ToString());
14.
Response.ContentType =
"application/octet-stream"
;
15.
Response.OutputStream.Write(bytes, 0, bytes.Length);
再次瀏覽該頁面,如下
分別點選【Export Excel】及【Export Pdf】按鈕,則頁面會各自出現另存新檔畫面,我們將檔案儲存下來之後,觀看excel及pdf之結果如下
Excel
沒有留言:
張貼留言