昨天研究怎么弹出消息框来着,本人水平有限找不到C#后台弹出消息框的方法,只有借助JS脚本才能包装出弹出的效果,今天是举国哀悼的日子,我也对C#默哀三分钟...三分钟后...好我们来看下怎么在页面里弹出消息框。
*** JS 弹出消息框 ***
语法:<script language=javascript>
alert('');
</script>
描述:alert()属于JavaScript中Window对象的方法,可以显示带有一段消息和一个确认按钮的警告框。可以在控件的onclick事件中被调用。
*** JS 弹出消息框 ***
Default.aspx
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Page对象-Default页</title> </head> <body bgcolor="#ffff99" > <form id="form1" runat="server"> <div > <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Response.Write" /> <br /> <br /> <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Page.ClientScript.RegisterStartupScript" Width="244px" /> </div> </form> </body> </html>
Default.aspx.cs
public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { Response.Write(" <script language=javascript> alert( '这是Response.Write()'); </script> "); } protected void Button2_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", " <script language=javascript> alert( '这是Page.ClientScript.RegisterStartupScript() '); </script> "); //Page.RegisterStartupScript("message", // " <script language=javascript> alert( '这是Page.RegisterStartupScript() '); </script> "); } }
好,我来说下运行机制。 Response.Write()和Page.ClientScript.RegisterStartupScript()都可以执行脚本语言,不同的是前者执行时,页面会白屏
(背景变白) 而后者不会白屏,所以后者的用户体验比较好。后者还有个同父异母的兄弟Page.ClientScript.
RegisterClientScriptBlock(), 他们都可以执行脚本,那么他们有什么不一样呢?他们在页面执行的地方不同,RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面。RegisterClientScriptBlock 方法是将 JavaScript 嵌入到页面中开启元素 <form> 的紧后面,当执行的脚本要查找某个控件时,这时执行顺序就体现出差别了。扯远了,上例输出结果如下:
Response.Write()方法,白屏了- -
Page.ClientScript.RegisterStartupScript()方法,显示正常。(背景色为米黄色)