Response.Write()方法响应导致页面内容变形的问题
Response.Write()方法響應導致頁面內容變形的問題
來源: 張林§的日志
= = 原來是這樣……我說CSS怎么都失效了呢。。坑爹的ASP.NET
首先是js彈出系統提示窗口的解決
Response.Write的確可以輸出Javascript腳本。但是這樣做會使得頁面的CSS樣式徹底失效。 如果你是Asp.net 2.0,則可以通過下面的代碼實現執行JS腳本: ClientScript.RegisterStartupScript(this.GetType(),"alt","alert('這樣執行腳本CSS不失效')",true);
?
然后是頁面的跳轉
轉自:http://liulili2005cn.blog.163.com/blog/static/181475512011312844338/
比方說在頁面里面有個LinkButton,要點擊以后要打開新窗口,而且新窗口的URL是根據用戶選擇結果動態產生的。LinkButton的代碼這樣寫: ??? protected void ServiceManHistoryButton_Click(object sender, EventArgs e) ??? { ??????? Response.Write("<script>window.open('EquipmentHistory.aspx?eid=" + ServiceManDropDownList.SelectedValue + "');</script>"); ???? } 運行以后會發現,新窗口是打開了,但是原來頁面的字體變大了,奇怪的問題! 有人想也不想就說是CSS沒設置好,對這些人我很無語,求教的時候最怕遇到他們 實際原因是直接Response.write輸出腳本代碼到頂部,打亂了文檔模型,所以造成了這樣的結果。
OK,解決方法有兩個。
方法一:把Response.Write()語句替換為這個 Page.RegisterStartupScript("ServiceManHistoryButtonClick", "<script>window.open('EquipmentHistory.aspx?eid=" + ServiceManDropDownList.SelectedValue + "');</script>");
這個方法用于在頁響應中發出客戶端腳本塊,前一個參數是該Script在頁面中的唯一名稱(隨便起,不重復就行),后一個是腳本內容。
這個方法應該是微軟官方推薦的方法。
方法二:在原程序的Response.Write()語句后再加一句
Response.Write("<script>document.location=document.location;</script>");
想出這個辦法的人真高!但是如果在一個輸入頁面,有多提醒狀態下,使用這個辦法會導致頁面內容清空哦 哈
源地址:http://blog.renren.com/GetEntry.do?id=731210778&owner=271653490
總結
以上是生活随笔為你收集整理的Response.Write()方法响应导致页面内容变形的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Site Definition和Web
- 下一篇: Windows API一日一练(2)使用