首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未通过FindControl找到动态生成的控件

是指在ASP.NET开发中,使用FindControl方法无法找到在运行时动态生成的控件。

动态生成控件是指在页面加载或其他事件触发时,通过代码动态创建的控件,而不是在设计时静态添加在页面上的控件。这种方式可以根据需要灵活地生成控件,但也会带来一些问题,如无法直接通过FindControl方法找到这些动态生成的控件。

解决这个问题的方法有多种,以下是一些常见的解决方案:

  1. 使用递归查找:可以编写递归方法,在页面的控件树中逐层查找目标控件。这种方法可以通过遍历页面上的所有控件,找到目标控件并返回。
  2. 使用命名容器:在动态生成控件时,可以将它们添加到一个命名容器中,如Panel或PlaceHolder控件。然后可以通过FindControl方法在该容器中查找目标控件。
  3. 使用UniqueID属性:动态生成的控件会自动分配一个唯一的ID,可以通过控件的UniqueID属性来查找目标控件。这个属性可以在页面的生命周期中保持唯一性。
  4. 使用ViewState或Session:如果动态生成的控件需要在页面的不同事件之间保持状态,可以将其保存在ViewState或Session中。在需要访问控件时,可以从ViewState或Session中获取控件的引用。
  5. 使用事件处理程序:可以在动态生成控件时为其添加事件处理程序,并在事件处理程序中进行相应的操作。这样可以避免直接查找控件的问题。

总结起来,未通过FindControl找到动态生成的控件可以通过递归查找、命名容器、UniqueID属性、ViewState或Session、事件处理程序等方法来解决。具体的解决方案可以根据实际情况选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Page.FindControl方法找不到指定控件原因

在ASP.NET 2.0中,引入了MasterPage机制,在当前页使用MasterPage情况下,放在 ContentPlaceholder1这样内容页控件无法用Page.FindControl...MSDN对FindControl解释:在当前命名容器中搜索带指定 id 参数服务器控件 这里有一篇文章阐述阐述FindControl方法和INamingContainers接口:http://www.odetocode.com.../Articles/116.aspx FindControl方法是在当前naming container查找指定ControlID对应控件,该naming container是一个实现了INamingContainer...可以在该页页指令中添加 Trace=Ture 指令来跟踪页面输出查看控件树。...很多时候,因为是动态控件,明知道是在同一个naming container中,但不知道该naming container是什么对象,一个控件找到另一个控件,可以用this.Parent.FindControl

1.4K70

C# Web控件与数据感应之数据返写

关于数据返写 数据感应也即数据捆绑,是一种动态,Web控件与数据源之间交互,数据返写 ,是指将查询出来数据,通过可显示数据UI控件进行数据输出,如查询详情页,见下图: 如图其中放置了一些标签(Label...本文将介绍如何中通过 C# 实现查询并返写数据到服务器UI控件上。...-413a-a87a-f5fa338b2f2c' and wxmpcid='21f4c424-a1df-4161-be1b-ce441e058be6' 最后我们将数据填充到 DataReader ,并生成对应二维数组...FindControlEx 实现了对 FindControl 方法扩充,如果查找不成功可试图查找是否有母版页,如果存在,则根据母版页模式继续查找。...FindControlEx 方法 FindControlEx 通过传递要查找服务器容器控件和ID参数,以返回查找到控件,代码如下: public Control FindControlEx(Control

9410
  • qt中QHBoxLayout或QVBoxLayout布局内控件动态生成与显示

    —恢复内容开始— #qt中QHBoxLayout或QVBoxLayout布局内控件动态生成与显示 打个比方,我现在写个小例子,这个小例子是这样,整个界面分为俩个部分,分为上半部分和下半部分,上半部分为...其实实现QHBoxLayout布局内控件动态显示核心函数实现就是**DynamicLayout**。...这个函数核心思路分为俩个部分,第一步就是先将原来布局内已经存在控件先进行清空,第二步进行动态控件生成。.../download.csdn.net/download/qq130106486/10707414 ---恢复内容结束---#qt中QHBoxLayout或QVBoxLayout布局内控件动态生成与显示...这个函数核心思路分为俩个部分,第一步就是先将原来布局内已经存在控件先进行清空,第二步进行动态控件生成

    98030

    GridView实战一:自定义分页、排序、修改、插入、删除

    ,本文和后面的另一篇GridView实战二:使用ObjectDataSource数据源控件均是这段时间一些总结。   ...禁用时就是控件初始化时selectedIndex或第一个选项。...因为DropDownList包含在GridView中是动态生成,当PostBack时GridView并不会恢复其中动态内容;如果把分页功能放在GridView以外实现,那么动态生成时DropDownList...2.排序:通过DataTable.DefaultView来实现,用一个ViewState变量存放最近一次排序方向反方向,来使每次排序方向都不同。...总结:   不适用数据源控件优点是,新增记录时可以马上看到新增记录;缺点是即使实现了分页功能,但每次还是从数据库中读取全部数据,效率低。

    2.8K100

    C# Web控件与数据感应之属性统一设置

    关于属性统一设置 数据感应也即数据捆绑,是一种动态,Web控件与数据源之间交互,属性统一设置 ,是指业务规则,通过配置数据,统一对数据控件属性进行赋值,以达到灵活应用目的。...,'现工作单位') insert into cfg_ypz (fname,cname) values('cjgzsj','参加工作时间') 最后我们将数据填充到 DataReader ,并生成对应二维数组...(1)2个值情况,指要赋值控件前缀,后面为属性名称,如 new string[] { "x_", "onclick" } 表示为按主控件名+x_前缀名进行查找,并赋予 onclick 属性(值 根据数据配置表进行设置...FindControlEx 实现了对 FindControl 方法扩充,如果查找不成功可试图查找是否有母版页,如果存在,则根据母版页模式继续查找。...FindControlEx 方法 FindControlEx 通过传递要查找服务器容器控件和ID参数,以返回查找到控件,代码如下: public Control FindControlEx(Control

    11010

    VS2008(C#)子页嵌套母版页控件访问方法(三)

    VS2008(C#)子页嵌套母版页控件访问方法(三)——嵌套三层母版页子页 子页嵌套了三层母版页后,依次访问第一层、第二层、第三层母版页控件实现方法如下: 第一层母版页HTML代码 <%@...,来访问其中控件(此时已为第二层)         ContentPlaceHolder cpMaster1 = (ContentPlaceHolder)Master.Master.Master.FindControl...("ContentPlaceHolder1");         //第一层母板找到第二层母板ContentPlaceHolder,来访问其中控件(此时已为第三层)         ContentPlaceHolder...,来访问其中控件(此时已为第二层)         ContentPlaceHolder cpMaster1 = (ContentPlaceHolder)Master.Master.Master.FindControl...("ContentPlaceHolder1");         //第一层母板找到第二层母板ContentPlaceHolder,来访问其中控件(此时已为第三层)         ContentPlaceHolder

    1.1K30

    GridView数据库分页+自定义分页导航(二):自定义分页导航。首页、上一页、下一页、尾页和跳转

    先进入模板编辑模式,选择【PagerTemplate】,添加自己所需导航控件 ?...列入这样,上一页和下一页和GO使用【LinkButton】,也可使用其他控件,【注:LinkButton 在编译后是HTMLa标签】, ?...这里页数使用ViewState[]存储,因为,在点击控件后,会进行一个提交,控件默认submit,提交后变量值都会被清空,而ViewState可以存储我们变量值。...现在,我们试着将上一页和下一页功能完善,在首页和上下页等控件上加上:onClick="Page_OnClick"(这里一定要加),然后CommandArgument="Next",在Page_OnClick...然后就是跳转,我们要获取到下拉框选中值,然后进行跳转,这句作用是找到GridView底部Pager行,并在这行中找到“pageLIst”这个控件,再获取他值,我只有用这句才能获取到值,如果大家有其他方式获取到

    1.7K10

    给自定义控件(Web Control)添加事件几种方法。前两种方法可以不实现IPostBackEventHandler

    找到了自定义分页控件开发 看了几遍,还是比较迷糊,最后把《自定义分页控件开发》 里提供代码down下来看了一下,终于有点明白了。     ...我们目的是要给自定义控件加一个事件,以便可以控制LabelText属性。 1、内部事件。     这个好像是我起名称,就是只在自定义控件内部相应事件,使用控件页面不用相应相关事件。... lbl = (Label)EventTest1.FindControl("lbl");             lbl.Text += "外部事件,Hello" ;         }     ...自定义控件事件已经整理清楚了,我可以修改分页控件代码了,原来写比较混乱。分页控件下一个版本(v2.0.0.3)将增加两个事件,这样就可以向吴旗娃分页控件那样灵活使用了。...)this.FindControl("lbl");             lbl.Text += "控件内部事件,hi";             //调用外部事件             TestClick

    1.2K70

    动态控件新思路

    常常有如此感叹:动态控件好加,但是状态维持困难。就是说,加入动态控件很容易,关联处理事件也不难,但是对于控件状态把握,却很麻烦。...往往需要在load时重新加载一次动态控件,总之处理起来很烦。         今天尝试了一个新思路,很简单,在页面最下方直接放上控件,隐藏,加载时加载它即可。这样,状态也能够轻松保持了。...实际上,它是一个静态控件。         用于:动态控件数目确定情况。         后续:发现这种方式也有问题。      ...* 如果采用动态控件,最大问题是要处理状态,非常麻烦,牵扯过多。最后,采用一个简单方案,通过Request.Form       * 集合采集值。...具体操作时,因为ID比较复杂,所以采用了遍历比较方法。FindControl不管用       */

    93470

    C# Web控件与数据感应之 BaseDataList 类

    关于数据感应 数据感应也即数据捆绑,是一种动态,Web控件与数据源之间交互,本文将继续介绍以与数据库提取数据并捆绑控件为例,讲解 C# 创建适用于 BaseDataList 类(如DataGrid)...BaseDataList 类 BaseDataList 类是包括如 DataList 、DataGrid 服务器控件基类,本文我们以 DataGrid 服务器控件控件,并结合 MS SQL SERVER..., 生成数据源需要利用 ADO.NET 中数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我文章: 《C#实现 IDbConnection...BaseDataList 用于捆绑 BaseDataList 控件,如DataGrid 6 DisplayFieldList string 用于捆绑到 BaseDataList 控件字段列表,以逗号进行分隔...DataGrid 控件和一系列导航按钮等控件,前端示例代码如下: <table border="0" cellpadding="0"

    8310

    基类、接口应用——表单控件:一次添加、修改一条记录,一次修改多条记录。(上)

    通过对一个实际中例子讨论,可以让新同学更好理解吧。 针对框架: 目前只考虑 asp.net1.1  (webform)。 先贴个图片,就是这样表单 ?...我想写一个方法(GetValue)来获取用户输入数据,而且在取值时候不必关心是什么控件,一个GetValue,就把值得到了,管它是什么控件呢!...控件比较多,我就只贴出 HBSCheckBoxList 代码吧,其他都是类似的写法。...我想达到是  ((IGetControlValue)Page.FindControl("控件ID")).GetControlValue(); 这样做好处是我只要知道控件ID就可以得到数据,而不必去关心到底是什么控件...最大优点就是:当控件在DataGrid位置发生变化时候,修改是很方便。 什么?您问取值地方在哪里?已经被我封装起来了。

    1.1K50

    使用AspNetPager与GridView完成分页

    由于GridView分页功能实在是太弱了,所以需要使用强大AspNetPager来作为分页控件。...最简单办法就是GridView控件下面接着放一个AspNetPager控件,但是这样好像就不能用GridView分页功能了。在数据量不大情况下,使用GridView分页是十分方便有效。...另外还有一个问题就是分页控件在GridView生成表格下面,而没有像GridView自带分页那样包含到表格内部,这点也不是很爽。...这个问题解决可不像前面那么简单了,通过设置属性CurrentPageIndex方式AspNetPager根本不认!...Bind();//GridView数据绑定方法     Wuqi.Webdiyer.AspNetPager pager = this.GridView1.BottomPagerRow.FindControl

    52330

    ASP.NET2.0中用Gridview控件操作数据

    在ASP.NET 2.0中,加入了许多新功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大提高。其中,在数据控件方面,增加了不少控件,其中Gridview控件功能十分强大。...在本文中,将探讨Gridview控件一些功能特性和用法,如果各位读者对Gridview控件不大了解,可以通过《 使用ASP.NET 2.0中Gridview控件》一文,来对Gridview控件有个初步认识...1、使用Gridview插入新记录 在Gridview控件中,可以实现插入新记录操作(见《使用ASP.NET 2.0中Gridview控件》)一文,但如果想实现在Gridview中,实现在Gridview...控件最后一行,提供一个空白行给用户输入要输入记录,那无疑是很方便。...而在更新代码button1_click事件中,将首先使用Gridview1.footerrow.findcontrol方法,将用户新增各字段值提取出来,然后分别赋值给sqldatasourceinsertparameters

    1.5K10

    GridView实战二:使用ObjectDataSource数据源控件

    前言:   ObjectDataSource数据源控件优点甚多,确实令人爱不惜手,但不支持重绑定这一项确实让人失望。...下面的实战二将通过ObjectDataSource配合GridView来实现删、改、分页、排序,并分析使用cache后排序失灵原因。 实战: 1.效果: ? 图1.显示状态 ?...3.排序功能上只要在ods上设定SortParameterName,它值就是SelectMethod中关于排序参数名称,然后设定GridViewAllowSorting为true就ok了。...ddlPaging.SelectedIndex = this.gv.PageIndex; 76 } 77 } 78 79 /// 80 /// 分页控件...对于该问题目前还没找到解决方法,望大哥们来告诉我啦^_^ 好消息:对于上面的问题终于找到了解决方法,就是自定义一个缓存层而不使用ods附带缓存功能。

    1.6K100
    领券