弹出对话框的同时保持页面的显示

来源:互联网 发布:米筐量化平台 下载数据 编辑:程序博客网 时间:2024/06/05 20:32

在很多网站中大家会经常看到用后台代码弹出对话框的问题,常用的解决方法是通过JavaScript来弹出对话框,可问题是当页面弹出对话框时,页面却是一片空白。这里讲述的就是如何弹出对话框的同时保持页面的显示。

 
【原理】
在页面上放置一隐藏控件,并在页面最后放上一段脚本代码,脚本代码检测隐藏控件的value是否为空,若不为空则弹出对话框显示信息,否则什么也不做。
后台代码在需要的时候修改隐藏控件的value,这样当页面传到用户那时,最后的脚本代码将执行并弹出对话框。
 
【注意事项】
1.隐藏控件必须是HTML控件,否则javascript无法找到。
2.后台代码要修改隐藏控件的值,隐藏控件自然得加上runat=”server” 标记。
3.在弹出对话框后,记得把隐藏控件的value置空,否则刷新的时候又会弹出来了。
4.脚本代码一定得放在隐藏控件的后面,否则同样找不到。

【实现】
页面代码(只列出相关代码)

//添加一个隐藏控件
<INPUT id="txtBox" type="hidden" runat="server" NAME="txtBox">

//JavaScript代码
  <script language="javascript">
   if( document.all("txtBox").value!="" )
    {
     alert( document.all("txtBox").value );
     document.all("txtBox").value="";
    }
  </script>

后台代码

  private void ImBtnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  {
    if (TxtUserCheck.Text.Trim()!=Request.Cookies["ImageV"].Value )
    {
     txtBox.Value="校验码不正确!";
     return;
    }
  }

【补充说明】
其实这个方法很简单,不过却很有效,你可以写一个函数showDialog(string str),然后在后台代码中任何需要的地方调用以弹出对话框。
此外,你还可以把alert换成showModelDialog(),以弹出功能更丰富,界面更漂亮的窗口。
最后,必须得说明的是,这个方法的思想可以用来在脚本和后台代码之间传递信息。