ie8控件无法加载 ASP.net中动态加载控件时一些问题的总结
ASP.net中动态加载控件时一些问题的总结
经常见到有人说在中不要使用动态控件 我想主要的原因在于使用动态控件会带来一些问题 在做项目的过程中 我将由动态加载控件引发的总是作了一个小小的总结
在使用LoadControl加载控件后 用户控件中的某些控件不再响应事件
这个问题主要是由于将控件加载放在if (!Page IsPostBack)之内引起的 放在外面即可 在思归的blog上对此问题进行了详细的说明
用户控件中某些控件的响应出现问题 如某个按钮第一次选择时不触发CLICK事件 第二次可以了
这是由于没有给控件设置ID引起的 控件ID的作用在下面详细讲述 如
Control userControl=(Control)Page LoadControl( Test ascx );
userControl ID= Test ;
AddControl(userControl);
如果用户控件中包括DataGrid控件 那么加载控件后可能出现不响应DataGrid事件的问题
这好像是一个bug 必须要将加载的控件进行强制转换 如
Test userControl=(Test)Page LoadControl( Test ascx );
注意 上面使用的是Test类型 而不是Control!
我在以前的Blog中曾提到过这个问题 这种方式将使系统的扩展性降低 我有一个解决方案可以和大家讨论(运用策略模式)
public class BaseControl : System Web UI UserControl
{
public virtual BaseControl ProcessThisControl();
}
所有的用户控件从BaseControl 继承 如果有Datagrid控件 由overide ProcessThisControl方法 如
return this as Test;
按如下方式加载控件
BaseControl userControl=(BaseControl )Page LoadControl( Test ascx );
userControl ProcessThisControl();
在用户控件中如何使用JavaScript
大家都知道 使用客户端的脚本将大大提高页面的响应速度 同时可以避免频繁地刷新页面 所以使用javascript来实现页面中部分控制是一个比较好的方式 但是在用户控件中如果访问某一个子控件呢?
使用方式如下 document all <%= TestControl ClientID%> disabled //将TestControl设置为不可用

如果在C#脚本中应该这样写 Page RegisterStartupScript( OnInitControl <SCRIPT LANGUAGE= JavaScript >document all Test_TestControl disabled ); //Test为用户控件 TestControl为用户控件中的子控件
lishixinzhi/Article/program/net/201311/12620相关文章
- ie浏览器怎么打不开了怎么办 为什么我用IE和360浏览器都打不开网页?
- ie浏览器能实现的功能不包含 如何开启IE搜索记录功能
- ie8控件无法加载 登入增值税发票查询平台显示加载安全控件不成功是什么意思?
- ie阻止安装activex控件 ie阻止未签名的控件的安装,如何解决
- ie修复工具修复浏览器 IE的工具是什么?在哪里?怎么用?
- ie6兼容 基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
- infuse尝试连线时遇到错误 Win7系统IE浏览器提示“SSL连线错误”怎么办
- 应用程序出现无法处理的异常 asp.net、IIS和Web应用程序
- aspnet数据绑定控件 ASP.NET入门教程 7.2.2 数据绑定控件[3]
- 决定使用html服务器控件 ASP.NET开发宝典:ASP.NET服务器控件语法
爱学记

微信收款码
支付宝收款码