ASP.net 动态加载控件时一些问题的总结
1 、在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件。 复制代码 代码如下:
3、如果用户控件中包括DataGrid控件,那么加载控件后可能出现不响应DataGrid事件的问题。 这好像是一个bug,必须要将加载的控件进行强制转换,如: 复制代码 代码如下:
注意:上面使用的是Test类型,而不是Control! 我在以前的Blog中曾提到过这个问题,这种方式将使系统的扩展性降低。 我有一个解决方案可以和大家讨论(运用策略模式): 复制代码 代码如下:
所有的用户控件从BaseControl 继承,如果有Datagrid控件,由overide ProcessThisControl方法,如: 复制代码 代码如下:
按如下方式加载控件: 复制代码 代码如下:
4、在用户控件中如何使用JavaScript。 大家都知道,使用客户端的脚本将大大提高页面的响应速度,同时可以避免频繁地刷新页面。所以使用javascript来实现页面中部分控制是一个比较好的方式,但是在用户控件中如果访问某一个子控件呢? 使用方式如下: 复制代码 代码如下:
现在说一下控件ID,在访问aspx文件时,IIS会将aspx的脚本进行编译。编译的时候将用户控件中的内容写在同一个页面中,为了防止页面中的控件与用户控件中的控件名称相同,在编译的时候对用户控件中的控件名称修改为 : 用户控件名:子控件 ,控件ID则修改为 用户控件ID_子控件ID。 在动态加载控件时,如果不对控件的ID进行赋值,则控件ID为上一次加载的控件ID,因此在加载用户控件后应该立即对其设置ID. (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |