首页 > 开发 > 综合 > 正文

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

2024-07-21 02:16:31
字体:
来源:转载
供稿:网友
,欢迎访问网页设计爱好者web开发。在csdn上经常看到大家讨论如何在asp.net中用后台代码中弹出对话框的问题,一般的解决办法就是用response.write写一段脚本代码来弹出对话框,可问题是当对话框弹出后,页面却一片空白。这里讲述的办法就是在弹出对话框的同时保持页面的显示。(其它办法如registerclientscriptblock()、registerstartupscript()也有一些限制,就不多说了)



【原理】

在页面上放置一隐藏控件,并在页面最后放上一段脚本代码,脚本代码检测隐藏控件的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中就是这样做的,效果很好。



第一次发文档,不足之处大家也就见谅见谅了:)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表