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

        在ASP.NET中,用后台代码中弹出对话框,一般的解决办法都是用Response.Write写一段脚本代码来弹出对话框,可问题是当对话框弹出后,页面却一片空白。这里讲述的办法就是在弹出对话框的同时保持页面的显示。

   【原理】

   在页面上放置一隐藏控件,并在页面最后放上一段脚本代码,脚本代码检测隐藏控件的value是否为空,若不为空则弹出对话框显示信息,否则什么也不做。

   后台代码在需要的时候修改隐藏控件的value,这样当页面传到用户那时,最后的脚本代码将执行并弹出对话框。

   【注意事项】

   (1)隐藏控件必须是HTML控件,否则JavaScript无法找到。
  (2)后台代码要修改隐藏控件的值,隐藏控件自然得加上runat=”server” 标记。
  (3)在弹出对话框后,记得把隐藏控件的value置空,否则刷新的时候又会弹出来了。
  (4)脚本代码一定得放在隐藏控件的后面,否则同样找不到。

   【实现】

 页面代码(例子中只列出Body段代码)

 

  
  
< body MS_POSITIONING = " GridLayout " > < form id = " Form1 " method = " post " runat = " server " > < asp:TextBox id = " manuInput " runat = " server " ></ asp:TextBox > < asp:Button id = " Button1 " runat = " server " Text = " 对话框 " ></ asp:Button > < INPUT id = " passTxt " type = " hidden " runat = " server " ><! —隐藏控件 -> </ form > < script language = javascript > if ( document.all( " passTxt " ).value != "" ) ... { alert( document.all("passTxt").value ); document.all("passTxt").value=""; //这句可不能掉哟! } </ script > </ body > 后台代码(例子中只列出Button1的响应事件) private void Button1_Click( object sender, System.EventArgs e) ... { passTxt.Value = manuInput.Text; }

 

  其实这个方法很简单,不过却很有效,你可以写一个函数showDialog(string str),然后在后台代码中任何需要的地方调用以弹出对话框。

   此外,你还可以把alert换成showModelDialog(),以弹出功能更丰富,界面更漂亮的窗口。

   最后,必须得说明的是,这个方法的思想可以用来在脚本和后台代码之间传递信息,在Web Application中就是这样做,效果还不错。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值