ASP.net从服务器端向客户端弹出alert对话框,但不使页面变成白板
来源:互联网 发布:河北广电网络集团 编辑:程序博客网 时间:2024/05/16 17:15
在做ASP.net的项目时,碰到在页面上输入一些数据后,然后点击提交按钮,然后服务器端校验数据,如果数据不合格,用
Response.Write("<script>alert(' 用户名不存在!')</script>")
向客户端推出一个警告窗口提示,这时候会发现,显示警告窗口的时候,在警告窗口的背面页面是一片空白,非得你按了警告窗口上的确定按钮,主页面才会显示出需要的内容。
为什么会出现一个页面白板呢?包括服务器端向客户端推出的 showModalDialog 模态窗口一样,用Response.Wrtie()输出到客户端页面,可以通过查看生成页面的源文件,就能发现是在页面的最前面加上了 alert() 或showModalDialog()js函数,这种警告窗口或模态窗口弹出来之后,将会阻止页面显示接下来的内容,所以您看到的就是一片空白,只有用户关了警告或模态窗口才会继续显示页面内容。
那么怎么才能让显示 alert对话框或 showModalDialog 窗口时,主页面有内容显示呢?很简单,需要让生成的 html 中alert 和 showModalDialog 处在显示内容的后面。
下面这个做法是:用Page.RegisterStartupScript()方法注册页面执行脚本,它会把注册的脚本放在Web 窗体的结尾处,即</form>标记之前
Page.RegisterStartupScript("msg", "<script>alert('用户名Unmi不存在!')</script>");
也就是 form 的内容显示完之后才执行这一段脚本--弹出警告窗口,所以页面不会空白。如果这个 WebForm 几乎包含了页面所有显示内容,那么从语义上讲也可以说是在 document 加载完后弹出警告窗口。
由此我们也能想到,如果给页面加个 window.onload 事件的处理函数,在这个处理函数中弹出警告窗口,那么不管是放在前面还是后面都不会影响到页面的显示(不会出现白板现象),因为它总是等待document加载完成后才执行的,因此我们也可以这样写:
Response.Write("<script >function window.onload() {alert('用户名Unmi不存在!');}</script>"); //这里重写了 window 的 onload 函数。
- ASP.net从服务器端向客户端弹出alert对话框,但不使页面变成白板
- ASP.net从服务器端向客户端弹出alert对话框,但不使页面变成白板
- ASP.NET从服务端向客户端弹出alert("")对话框,但不使页面变成白板...
- ASP.NET AJAX下alert弹出对话框
- asp.net页面弹出对话框
- asp.net ajax 无法弹出alert对话框的解决方法
- asp.net ajax 无法弹出alert对话框的解决方法
- 在使用ASP.NET AJAX时用alert弹出对话框
- asp.net ajax 无法弹出alert对话框的解决方法
- 怎样在asp.net页面弹出对话框?
- ASP.NET弹出对话框并跳转页面
- 页面加载时弹出alert对话框
- ASP.NET输出Javascript 对话框 但不影响字体大小
- ASP.NET弹出对话框
- asp.net弹出对话框
- 服务器端弹出alert对话框,返回上一页面
- ASP.NET 使用alert弹出对话框后,CSS样式失效,字体变大的解决方法
- ASP.NET 使用alert弹出对话框后,CSS样式失效,字体变大的解决方法
- 对Hibernate默认的JDBC事务的尝试
- hibernate 二级缓存
- 选出字符串中出现次数最多的字符
- LINQ to SQL更新数据库操作
- 科学杂志:生物灭绝可能缘自峨眉火山喷发
- ASP.net从服务器端向客户端弹出alert对话框,但不使页面变成白板
- osstringstrream,stringstream str()返回临时变量问题
- c/c++中使用宏来定义动态数组
- [Exception]SEVERE: Failed to set the internal configuration of the OC4J JMS Server with: XMLJMSServerConfig
- JDBC优化数据库连接
- VisitorPattern
- vc++中stdcall与cdecl的相关知识
- win32 api
- C++ Primer学习笔记:字面值常量使用小结