Asp.net动态加载控件的一些问题

使用Asp.Net(C#)动态加载控件 在VB6.0中,如果需要动态控制窗体控件,通常是在窗体上放一个控件,并将其 Index 设为 0,程序运行中,使用控件的Load和Unload事件就可以动态加载、卸载控件(第一个即Index属性为0的那个控件不能卸载),以达到灵活控制。但在 C#中,控件没有 Index,这个属性,也没有Load和Unload这两个事件动态加载和卸载控件,而是用另外一种方法。     C#中,需要动态加载、卸载控件 阅读详情
ASP.net 动态加载控件时一些问题的总结
1 、在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件。 这个问题主要是由于将控件加载放在if (!Page.IsPostBack)之内引起的,放在外面即可。

2、用户控件中某些控件的响应出现问题,如某个按钮第一次选择时不触发CLICK事件,第二次可以了。 
这是由于没有给控件设置ID引起的,控件ID的作用在下面详细讲述。 如 
复制代码 代码如下:
Control userControl=(Control)Page.LoadControl(“Test.ascx”); 
userControl.ID=“Test”; 
AddControl(userControl); 

3、如果用户控件中包括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(); 

4、在用户控件中如何使用JavaScript。 
大家都知道,使用客户端的脚本将大大提高页面的响应速度,同时可以避免频繁地刷新页面。所以使用javascript来实现页面中部分控制是一个比较好的方式,但是在用户控件中如果访问某一个子控件呢? 
使用方式如下: 
复制代码 代码如下:
document.all.<%= TestControl.ClientID%>.disabled=true; //将TestControl设置为不可用 
如果在C#脚本中应该这样写:Page.RegisterStartupScript("OnInitControl","<SCRIPT LANGUAGE='JavaScript'>document.all.Test_TestControl.disabled=true;</SCRIPT>"); 
//Test为用户控件,TestControl为用户控件中的子控件。 
现在说一下控件ID,在访问aspx文件时,IIS会将aspx的脚本进行编译。编译的时候将用户控件中的内容写在同一个页面中,为了防止页面中的控件与用户控件中的控件名称相同,在编译的时候对用户控件中的控件名称修改为 : 用户控件名:子控件 ,控件ID则修改为 用户控件ID_子控件ID。 在动态加载控件时,如果不对控件的ID进行赋值,则控件ID为上一次
加载的控件ID,因此在加载用户控件后应该立即对其设置ID. 
基于plc的工厂除尘控制系统设计(S7-200、仿真、调试、高质量) 工业作为我国第二支柱产业,在近十几年来发展非常迅速,虽然带了了可观的经济效益,但在工业生产中所产生的大量粉尘气体对大气的污染现象也不容忽视。为减少工业粉尘对环境的污染,世界各国制定了严格的环境保护要求。为了减少工业中粉尘的排放,除尘器的研发改良,以及燃煤的使用等等都在不断更改以符合粉尘排放标准。而目前最先进的除尘设备无机膜除尘器具备除尘效率高,稳定性好,结构紧凑易于维护等优点,且无机膜对于粉尘吸附效率高,抗腐蚀能力优秀,耐高温,因此能更有效应用于高温烟气的除尘。本文根据PLC技术在除尘方面的应用,来优化设计 阅读详情

相关推荐

4万字一文带你看懂车载摄像头技术、市场、发展前景

1、小孔成像 在战国初期,我国学者墨子(公元前468年-公元前376年)和弟子们完成了世界上第一个小孔成像的实验,并记录在《墨经》中:“景到,在午有端,与景长。说在端。”“景。光之人,煦若射,下者之人也高;高者之人也下。足蔽下光,故成景于上;首蔽上光,故成景于下。在远近有端,与于光,故景库内也。” 此文解释了小孔成倒像的原因,指出了光沿直线传播的性质。这是对光直线传播的第一次科学解释。 而西方世界直到公元前350年,古希腊学者亚里士多德提出光学法则,西方人从此了解小孔成像的光学原理。

m0_58838529的博客 1495

DevExpress(2): ASPxUploadControl随笔

DevExpress版本14.1 (1)在设置UploadMode为Advanced的情况下,比如要EnableMultiSelect的时候,为什么上传文件时出现Not Found? 当UploadMode为Advanced的时候必须使用ASPxUploadProgressHttpHandler来处理文件上传,而这个Handler是不会自己跑到Web.Config里面的。 所以参照:h...

weixin_30617561的博客 237

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

(论坛答疑点滴)用户控件动态加载PostBack后的问题

很多网友在按钮的click事件中动态添加用户控件在页面回传后消失了或者就是用户控件中的按钮事件不能触发,下面是解决办法: (1) 首先添加一个用户控件:WebUserControl1.ascx 添加一个按钮:public System.Web.UI.WebControls.Button ucb;Text为"用户控件的按钮"(等会要在Page中用到这个按钮,所以设置为public) ...

weixin_33885253的博客 168

江科大51单片机笔记【1】单片机及开发板介绍

单片机,Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(传感器)、处理(CPU)和硬件设备(电机、LED)的控制单片机算是一个袖珍版计算机,是一个完整的计算机系统,成本低体积小结构简单单片机的使用领域:智能仪表、实时工控、通讯设备、导航系统、家用电器等。

2301_80195807的博客 838

工业级4~20mA转0~3V信号调理电路原理图设计,已量产(电流传感器)

在工业现场,4~20mA 电流信号是模拟量传输的 “老熟人”—— 抗干扰强、能跑长距离,但嵌入式 MCU 的 ADC 一般只认电压信号。最近做项目时,我设计了一款能覆盖 0~25mA(含超量程冗余)、线性输出 0~3V 的调理电路,经过现场调试挺稳定,分享下细节。

不脱发的程序猿 528

DevExpress ASPxUploadControl 使用示例 demo

全面使用DevExpress做文章管理,涉及附件上传。思路:使用ASPxUploadControl上传(因为它有progresspanel,而且可以多文件上传),点击上传时用session存储附件结构(AttachmentInfo)信息,同时更新上传附件列表(AspxListBox),直至整体文章提交才真正根据AttachmentInfo中存储的各种附件状态(exist/delete/add)上传

jjhua的专栏 1万+

国产化替代落地:C#+Avalonia跨平台开发(麒麟系统适配全流程)

摘要: 随着国产化替代政策的推进,麒麟操作系统成为国产替代的重要选择。本文介绍了如何使用C#和Avalonia框架开发跨平台应用,适配麒麟系统。Avalonia支持Windows、Linux(包括麒麟)和macOS,通过XAML设计UI,便于开发者快速上手。文章详细讲解了开发环境配置、XAML控件设计、Linux特性适配及性能优化,并强调政府30%研发补贴带来的政策红利。未来,随着国产系统生态完善,C#+Avalonia将成为企业跨平台开发的高效解决方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3475

自定义模板列在 PostBack 后消失的问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34327223的博客 251

YOLOv11改进策略【Neck】| 替换RT-DETR中的CCFF跨尺度特征融合颈部结构,优化计算瓶颈与冗余问题

RT-DETR中的CCFF模块用于优化多尺度特征融合,解决传统方法的计算瓶颈与冗余问题,提升模型速度与精度,以适应实时检测需求。

Limiiiing的博客 1831

【WRF-DART第一期】WRF/DART概述

【WRF-DART第一期】WRF/DART概述

WW、forever的博客 107

ASP.net中动态加载控件时一些问题的总结

经常见到有人说在ASP.net中不要使用动态控件,我想主要的原因在于使用动态控件会带来一些问题,在做项目的过程中,我将由动态加载控件引发的总是作了一个小小的总结.1 、在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件。    这个问题主要是由于将控件加载放在if (!Page.IsPostBack)之内引起的,放在外面即可。在思归的blog上对此问题进行了详细的说明。2、用

阿宝 2208

点云焊缝提取

本文介绍了一个基于PCL库的点云处理流程,包含三个核心模块:MLS平滑处理通过多项式拟合修正点云位置;差异提取通过双向匹配定位源/目标点云的非重叠区域;统计过滤剔除离群噪声点。该流程采用"平滑-筛选-净化"的通用思路,将复杂算法封装为可配置接口,实现了工业级点云预处理。文章重点分析了各模块的原理、PCL接口调用及参数设计逻辑,同时指出参数调优、算法扩展等深入探索方向,展现了PCL在点云处理中的模块化优势与实用价值。

weixin_45196569的博客 250

asp.net using c# 问题二 动态 加载 用户控件 ID

要动态加载用户控件 如果只是一个的话,没什么问题,可是加载好几个, http://community.csdn.net/Expert/TopicView1.asp?id=3175898

daqingshu的专栏 1262

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ASP.NET 动态加载控件激发事件的问题

前面一篇<ASP.NET 动态加载控件的问题 >提到过控件时间加载和注册时机的问题,另外还有就是PostBack的问题.除了以上两个问题还有一个控件ID的问题容易被我们忽视. 在一个动态加载的控件中,又几个动态添加的Button要点击两次才会激发事件,但如果把这几动态添加的按钮直接到页面上而不是控件,那么一切又都正常,非常郁闷的问题,经过努力的探索之后发现给动态添加的按钮...

format的博客 128

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 风讯cms标签列表
下一篇: 由一个小库存软件想到的
一剑平江湖
博客等级 码龄18年 207粉丝 1070原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值