導出excel 后 頁面按鈕失效(頁面假死)

在 page_load 里加上如下代碼:

?string beforeSubmitJS = "\nvar exportRequested = false; \n";?
? beforeSubmitJS += "var beforeFormSubmitFunction = theForm.onsubmit;\n";?
? beforeSubmitJS += "theForm.onsubmit = function(){ \n";?
? beforeSubmitJS += "var returnVal = beforeFormSubmitFunction(); \n";?
? beforeSubmitJS += "if(exportRequested && returnVal) {_spFormOnSubmitCalled=false; exportRequested=false;} \n";?
? beforeSubmitJS += "return returnVal; \n";?
? beforeSubmitJS += "}; \n";?
? this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alterFormSubmitEvent", beforeSubmitJS, true);?

注冊javascript程序,然后再按鈕提交時發送一個參數:?

this._btnSubmit.Attributes["onclick"] = "javascript:exportRequested=true;";?

這樣可以解決這個問題。?

原理:頁面按鈕提交時會調用一個內置的方法并修改一個內置變量_spFormOnSubmitCalled,我們通過按鈕來調用方法重置?

這個參數的值,達到系統檢索頁面時,一直默認為未提交狀態。

?================注意點1=====================================

但是,如果是ascx 控件上 點擊導出按鈕,而不是aspx頁面上點擊按鈕,那么 上面的方法會報錯,

._btnSubmit為導出Excel文件的Button;
RegisterClientScriptBlock將代碼注冊到源文件后面,RegisterStartupScript的話,由于theForm.onsubmit 沒有聲明,會報錯

?

================注意點2=====================================

生成的excel文件如果選擇"打開",是很正常的;
選擇“保存”,頁面上的所有腳本失效,前題還必須是target為_self
錯誤信息為“未知錯誤“
個人分析認為這個是生成的頁面雖然彈出打開,但設置的setHeader已經默認為excel文件格式,這個引響到了IE調用JS的方式(猜測),現在解決的方法為將target設為_blank,不過結果是會多一個白色的頁面

================注意點2=====================================

? protected void Page_Load(object sender, EventArgs e)
??????? {
??????????? btnExcel = (Button)FindControl("btnExcel");

??????????? #region [moss里用Response生成Excel或word以后頁面按鈕失效問題,解決辦法]
??????????? string beforeSubmitJS = "/nvar exportRequested = false; /n";
??????????? beforeSubmitJS += "var beforeFormSubmitFunction = theForm.onsubmit;/n";
??????????? beforeSubmitJS += "theForm.onsubmit = function(){ /n";
??????????? beforeSubmitJS += "var returnVal = beforeFormSubmitFunction(); /n";
??????????? beforeSubmitJS += "if(exportRequested && returnVal) {_spFormOnSubmitCalled=false; exportRequested=false;} /n";
??????????? beforeSubmitJS += "return returnVal; /n";
??????????? beforeSubmitJS += "}; /n";
??????????? this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alterFormSubmitEvent", beforeSubmitJS, true);
??????????? this.btnExcel.Attributes["onclick"] = "javascript:exportRequested=true;";
??????????? #endregion

??????????? if (!Page.IsPostBack)
??????????? {
??????????????? Page.DataBind();
??????????? }
??????? }

?


轉載于:https://www.cnblogs.com/luofeng99/archive/2011/07/05/2177596.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392881.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392881.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql分組查詢group by語句詳解

(1) group by的含義:將查詢結果按照1個或多個字段進行分組,字段值相同的為一組(2) group by可用于單個字段分組,也可用于多個字段分組 select * from employee; --------------------------------------------- | num | d_id | name | age | sex | homea…

leetcode 75. 顏色分類(雙指針)

給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼…

火車頭如何才能設置發布的時候,如果是有html代碼就直接的轉換掉,互聯網上笑話抽取及排重---火車頭采集器的使用和MD5算法的應用...

10011311341 呂濤、10011311356李紅目的:通過熟悉使用火車頭采集器,在網絡上采取3萬條笑話并進行排重,以此來熟悉web文本挖掘的一些知識。過程:本次學習,主要分成兩個部分。第一部分是笑話文本的采集,第二部…

Tcp_wrapper

在Linux進程分為:獨立進程和非獨立進程非獨立進程:是依賴于超級守護進程的進程, 且受Xinetd 管理,并在啟動服務時 必須啟動例子:#chkconfig –level 2345 telnetd on關與chkconfig 的命令:#chkconfig –lis…

angular 動畫_如何在Angular 6中使用動畫

angular 動畫介紹 (Introduction) Animation is defined as the transition from an initial state to a final state. It is an integral part of any modern web application. Animation not only helps us create a great UI but it also makes the application interesting…

win10上面安裝win7的虛擬機怎么相互ping通

最近干了一些很蛋疼的事,這些都是自己踩過的坑,記錄下來方便自己以后查閱 首先我的目的就是為了在自己的PC機上面部署一個SVN服務器,然后安裝一個客戶端,自己寫的軟件就可以定期入庫,做好自己的版本控制,但…

新東方面試知識點記錄

3.spring mvc 怎么接受http post 方式提交過來的xml數據?servlet中怎么接受? RequestMapping(value"/jsonPrase", headers {"content-typeapplication/json","content-typeapplication/xml"}) ResponseBody …

win10用計算機名訪問文件夾,win10系統提示你當前無權訪問該文件夾的解決方法【圖文教程】...

Win10系統下,我們在訪問或更改某些系統文件夾時,有時會遇到系統提示“你當前無權訪問該文件夾”的情況。那么,遇到這種情況的話,我們該怎么辦呢?接下來,小編就向大家分享win10系統提示“你當前無權訪問該文…

.Net Micro Framework研究—實現SideShow窗體界面

基于MF系統的Windows SideShow界面是非常炫的(如下圖)。既然微軟能用.Net Micro Framework實現這么棒的界面效果,我想我們也能做到。 (SideShow模擬器界面和游戲程序中的右鍵菜單—注意菜單彈出后,其它的界面變暗了&am…

leetcode 344. 反轉字符串

編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 你可以假設數組中的所有字符都是 ASCII 碼表中的可打印字符。…

事件捕獲(capture)和冒泡事件(Bubble)

PS:這里是我從別人的博客中學習事件捕獲和冒泡是的總結,如果你也感興趣的話,建議你點擊鏈接查看原博客的內容,他們寫的都是很經典! 對“捕獲”和“冒泡”這兩個概念,我想我們對冒泡更熟悉一些&…

gulp編譯css_如何用gulp縮小CSS

gulp編譯cssby Vinicius Gularte由Vinicius Gularte 如何用gulp縮小CSS (How to minify your CSS with gulp) In this article, Im going to show a simple way to automatically minify your CSS files using gulp. ?在本文中,我將展示一種使用gulp自動縮小CSS文…

線段樹(區間更改,區間查最值)模板

線段樹(區間更改,區間查最值)模板 主要重在理解線段樹,理解了怎么改都可以,還有以后不要直接抄模板,要寫出自己想的一份代碼 &代碼&#xff1a; #include <cstdio> #include <bitset> #include <iostream> #include <set> #include <cmath>…

Unity3D項目開發一點經驗

我們主要使用3dsmax2010進行制作&#xff0c;輸出FBX的類型導入Unity3D中。默認情況下&#xff0c;3dsmax8可以和U3D軟件直接融合&#xff0c;自動轉換為FBX物體。 注意事項如下&#xff1a; 1.面數控制 在MAX軟件中制作單一GameObject物體的面數不能超過65000個三角形&#xf…

leetcode 142. 環形鏈表 II(set/快慢指針)

給定一個鏈表&#xff0c;返回鏈表開始入環的第一個節點。 如果鏈表無環&#xff0c;則返回 null。 為了表示給定鏈表中的環&#xff0c;我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置&#xff08;索引從 0 開始&#xff09;。 如果 pos 是 -1&#xff0c;則在該鏈表中沒有…

html5 支持表格嗎,html5 – 在HTML 5中使用表格很好嗎?

簡單規則 – 使用表格表格數據&#xff0c;使用其他元素進行演示(使用CSS設計布局)&#xff0c;如div&#xff0c;section&#xff0c;aside&#xff0c;nav等。這為他們所持有的內容提供了意義&#xff0c;而不是為所有內容使用表事實是&#xff0c;開發人員在90年代使用了表格…

css網格_我如何記住CSS網格屬性

css網格The syntax for CSS Grid is foreign and hard to remember. But if you can’t remember CSS Grid’s syntax, you won’t be confident when you use CSS Grid.CSS Grid的語法是外來的&#xff0c;很難記住。 但是&#xff0c;如果您不記得CSS Grid的語法&#xff0c;…

2017年讀書計劃(一)

前言 這篇博文就暫時不記錄技術了&#xff0c;記錄下生活。對自己今年2017年做個讀書計劃安排。 最近在看一部網絡劇 - 《花間提壺方大廚》&#xff0c;也許你們會感覺我很無聊&#xff0c;我也是被頭條帶壞了&#xff0c;每天上班一個小時的地下交通-地鐵&#xff0c;就借助上…

.net10個必備工具

1.NUnit 編寫單元測試的工具2.NDoc 自動生成代碼文檔的工具3.NAnt 編譯解決方案的工具4.CodeSmith 自動生成代碼的工具5.FxCop 檢查你的代碼是否按照規范編寫的工具6.Snippet Compiler 編譯少量代碼的工具7.ASP.NET Version Switcher Visual Studio .NET Project Conve…

音標

音標 oror ds念子音&#xff0c;ts念s音