弹出选择窗体控件(附源码)
弹出选择窗体控件(附源码)
久未在博客园发文章,今天有空,借着郁闷酒气,发个最近做的控件吧(未完结版本)。
先上图,来点真相:
这个应该是许多WebForm程序都需要的功能吧,最近写的小程序里边写了个,就抽出来了,弄了个自己的命名空间,具体的代码方面参考了一下郑健的《庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术》一书中的某个控件。他那个是.net 3.5的,用了ScriptManager,具体没有详细的了解。这个是.net 2.0的,使用的一些东西也不一样。
顺带说一下,《庖丁解牛》是一本十分推荐的好书,是居家旅游,杀人Mie口的常备好书。
具体遇到两个问题:
1. 向控件所在的WebForm注册JS脚本代码,要在override的OnPreRender处注册。WebForm页面要包
含<form id="form1" runat="server">标记。
2. 在弹出框里边,服务器控件回传后,dialogArguments在IE可以使用,在Firofox和Chrome浏览
器已经不存在了,只能走window.opener来回传值了。
第二点很重要,要浏览器兼容,必须考虑。虽然,直接用dialogArguments可以为返回的控件加js
事件来返回一个值,但是,如果是触发服务器控件的服务器事件,就不能使用dialogArguments了
,服务器回传后,就不能使用dialogArguments,只能用window.opener了,这个东西弄了我一个半
个下午。
尚未实现:回传值绑定到多个控件上。
已经测试浏览器:
IE 6.03XXXXX
Firefox 3.0.4
Chrome 3.0.195.38
其他浏览器尚未测试,代码项目附在文章后边,VS2008下.net2.0的项目。
代码下载【弹出选择窗体控件(附源码)】