-----------------------------------------------
Response.Write 表示在當(dāng)然輸-出流位置寫入數(shù)據(jù)
ASP.NET 中不要隨便使用 Response.Write,會打亂 ASP.NET 的輸出流順序
在 .aspx.cs 中使用 Response.Write 的輸出會出現(xiàn)在頁面的最頂部
會導(dǎo)致頁面布局得不到預(yù)期效果
-------------------------------------------------
通常情況不要用response.write,他會打亂你的面向?qū)ο竽P?/p>
------------------------------------------------
用這個來代替:
Page.ClientScript.RegisterStartupScript(this.GetType(),"alert","<script>alert('messagebox效果');</script>");
后言:由于div是流布局,response.write()輸出得內(nèi)容總是在頁面得最前端,打破了原有得流布局,所以會造成樣式改變,但是還有疑問得是為什么字體也會改變還不清楚
另一種解決辦法:
在頁面中加一個<asp:Literal ID="Literal1" runat="server"></asp:Literal>控件,把代碼賦給它也可以。
*******************************************************如果在單獨的類中會出現(xiàn)非靜態(tài)字段、方法或?qū)傩浴癝ystem.Web.UI.Page.ClientScript.get”要求對象引用的問題,一下是網(wǎng)頁上的解決方案.**************************************************
如果該類不是繼承自 System.Web.UI.Page
那么必須將特定的 頁面Page 作為參數(shù)傳入該類中,如作為方法參數(shù)
public class MyClazz
{
public void SomeFoo(System.Web.UI.Page targetPage)
{
targetPage.ClientScript.RegisterStartupScript(targetPage.GetType(), "back ", " <script lanuage=javascript> window.alert( ' " + "該客戶編號已存在! " + " '); </script> ");
// ....
}
}
***********在某頁面中調(diào)用時:用this.page作為參數(shù)即可..
備注:*******************************************************************
RegisterClientScriptBlock() 和RegisterClientScriptBlock. 這兩個方法的作用都是從前臺向后臺寫腳本, 這兩個方法唯一的不同之處在于從“何處”發(fā)送腳本塊。
RegisterClientScriptBlock() 在 Web 窗體的開始處(緊接著<form runat="server"> 標(biāo)識之后)發(fā)送腳本塊,而 RegisterStartupScript() 在 Web 窗體的結(jié)尾處(在 </form> 標(biāo)識之前)發(fā)送腳本塊。
RegisterStartupScript() 用于添加要在加載頁面后運行的腳本塊,通過這種方法添加的腳本塊位于 Web 窗體的結(jié)尾處,因為必須在腳本運行前定義腳本要修改的 HTML 元素。也就是說,如果您要使用客戶端腳本將焦點設(shè)置到文本框,必須確保文本框的 HTML 標(biāo)記位于設(shè)置該文本框的焦點的腳本之前。
RegisterClientScriptBlock() 方法用于為響應(yīng)客戶端事件而執(zhí)行的腳本代碼。通過此方法發(fā)送的腳本塊位于 Web 頁面的開始處,因為這種方法不要求將腳本塊置于所有 HTML 元素之后,即它一般不使用文檔內(nèi)自定義的控件