1. 程式人生 > >response.write()彈出提示後頁面布局改變的解決辦法

response.write()彈出提示後頁面布局改變的解決辦法

因此 spa ctype 標準 star 發現 his 討論 type()

發現在使用了response.write後樣式發生了變化,位置和字體都不正確。Response.Write("<script>alert(‘)</script>")這種用法也是這樣,2003中沒有這種情況,很不明白,恰巧看到了csdn上的一個帖子也是討論這個問題的,其中提到原因有:

ASP.NET 2.0裏默認使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">文檔定義模型,這個dtd的規則與以前的不同,因此,許多以前寫的代碼在新標準下無法正常運行。

Response.Write 表示在當然輸-出流位置寫入數據

ASP.NET 中不要隨便使用 Response.Write,會打亂 ASP.NET 的輸出流順序

在 .aspx.cs 中使用 Response.Write 的輸出會出現在頁面的最頂部

會導致頁面布局得不到預期效果

通常情況不要用response.write,他會打亂你的面向對象模型

用這個來代替:

Page.ClientScript.RegisterStartupScript(this.GetType(),"alert","<script>alert(‘保存成功‘);</script>");

示例:

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert(‘添加成功!‘);window.location.href=‘EqpInfo.aspx‘;</script>");

後言:由於div是流布局,response.write()輸出得內容總是在頁面得最前端,打破了原有得流布局,所以會造成樣式改變,但是還有疑問得是為什麽字體也會改變還不清楚

另一種解決辦法:

在頁面中加一個<asp:Literal ID="Literal1" runat="server"></asp:Literal>控件,把代碼賦給它也可以。

response.write()彈出提示後頁面布局改變的解決辦法