ASP.NET使用弹出窗口(对话框)的体会
来源:互联网 发布:好听的粤语 知乎 编辑:程序博客网 时间:2024/05/29 18:49
ASP.NET使用弹出窗口(对话框)的体会
从整理这篇文章的目的,在于记录前一段使用弹出窗口的经验,同时结合对一些资料的阅读,总结弹出窗口使用方法。首先描述一下需求:在信息发布系统中,信息的一个字段信息为“栏目”,需要从多级栏目中选择出一个栏目发布文章。考虑到用户界面的美观和操作的方便,决定在新信息发布页面中放置一个Button,用户点击该Button后,弹出一个显示栏目树的窗口,用户可在该窗口中选择栏目。
这样就引出了本文要讨论的问题:如何弹出窗口?如何在父窗口和弹出窗口之间传递信息?
在回答这两个问题之前,首先需要指出,目前有三种方法可以弹出窗口(对话框),它们分别是:
- window.open方法
- 无模式对话框
- 有模式对话框
如何在这三种方法中做出选择、如何对后两种方法做出前面两个问题的回答,这在文后所附的文章中都有介绍。所以,这里主要针对window.open方法做出回答。
下面是一个使用window.open弹出窗口的简单的例子:
function open_cate()
{
window.open("OpenUp.aspx","","toolbar=0,location=0,directories=0,status=0,
menubar=0,scrollbars=1,resizable=0,left=200,top=100,width=250,height=400");
}
</script>
从代码中可以看出,我们可以对弹出窗口的诸多属性进行设置。如果我们想要在点击一个Button时弹出窗口,值需要在该Button的OnClick时间中调用该JavaScript函数即可。
解决了如何弹出窗口的问题之后,下面讨论如何在页面之间传递信息。
父窗口向弹出窗口传递信息
这里我采用的办法是在URL中拼接参数传递信息。window.open的第一个参数为URL,我们可以把参数加在URL后,例如'OpenUp.aspx?parm1=abc&parm2=<%=serversideparm%>'。这样,只需在弹出窗口QueryString到这些参数,就实现了动态向弹出窗口传递信息。
将弹出窗口的信息传回父窗口
使用弹出传口的目的主要是为了同用户的交互,所以如何在父页面中得到用户对弹出窗口的操作结果是非常重要的。其实这里实现的方法也很简单,同样是通过JavaScript:通过window.opener得到父窗口的window对象,就可以对父窗口进行操作,比如对某个TextBox设值。
后记
当初为了实现这个简单的交互操作,花费了整整一下午的时间,关键是对JavaScript太生疏,自以为做Server端的东西才是本事,其实是犯了大错。
另外,如果在Js中引用.net Server端对象遇到对象为空的报错时,很有可能是对象在编译后,VS对控件进行了重命名。一开始这里不知道,害得我好苦
- ASP.NET使用弹出窗口(对话框)的体会
- ASP.NET(用c#),弹出文件保存对话框窗口
- ASP.NET的弹出窗口
- asp.net使用Javascript弹出对话框
- ASP.NET弹出对话框
- asp.net弹出对话框
- ASP.net弹出消息对话框的方法! (轉載)
- ASP.net弹出消息对话框的方法! (轉載) .
- ASP.net弹出消息对话框的方法! (轉載) .
- ASP.net弹出消息对话框的方法!
- ASP.net弹出消息对话框的方法!
- asp.net弹出对话框的封装
- ASP.net弹出消息对话框的方法
- ASP.net弹出消息对话框的方法
- ASP.net弹出消息对话框的方法
- ASP.net弹出消息对话框的方法!
- asp.net弹出窗口
- asp.net弹出窗口
- 使用 Java 构造高可扩展应用
- 自动生成数据库文档
- C#中将DateTime类型转换成Byte数组
- 快速计算32位数中1的位数
- 每步动态域名解析的设置详解(一)------实现vpn
- ASP.NET使用弹出窗口(对话框)的体会
- 博客,你为什么要这样封锁自己?
- 借刀杀人,不使用任何中间变量实现strlen
- VS Warring
- DOM 精简知识教程
- Silverlight 2.0 RTW 正式版发布(附下载地址)!
- 去除数组中的重复数字
- C#中将Byte数组转化成DateTime类型
- Java中获取年,月,日,时间