ASP.NET DataSource控件“没有命名容器”异常
我一直在我的代码中得到这个例外,并想知道是否有人可以帮助我.
我有一个绑定到ObjectDataSource的Repeater控件,并且转发器的itemtemplate包含一个用户控件(ASCX).该用户控件又包含几个其他控件,主要是与ObjectDataSource关联的GridView. 在此设置中初始使用控件时,一切都很好 – 数据显示正常.但是,当我更改过滤器选项(转发器外部的下拉菜单),然后重新绑定Repeater时,我得到异常: ObjectDataSource控件’expDataSource’没有命名容器.确保在调用DataBind之前将控件添加到页面中.“ 我不确定问题是什么 – 我在一些地方读过,将数据源移到ASCX控件之外可能会有所帮助 – 这没什么用. objectdatasource看起来结构合理,正如我所说,它是第一次(仅). 我在堆栈跟踪中注意到,当发生LoadComplete()之后ASP.NET正在调用FindControl()时发生这种情况.如果我单步执行代码,似乎所有代码都在执行之前完成执行,因此它是所有“系统”代码. 为什么ASP.NET无法在LoadComplete处理程序中找到此数据源控件? 谢谢! 其他说明: >此错误每隔一次发生.因此,第一次正确加载数据时,第二次刷新会因此错误而失败.再次单击“加载”,它可以工作(第三次). >工作模式: >父页面上的Page_Load >失败模式: >父页面上的Page_Load 这一切都发生在对“Repeater.DataBind()”的调用中,但它的行为会有所不同,具体取决于它是否已被绑定(显然). 更多说明: 真奇怪的行为.我从ObjectDataSource的底部删除了SelectParameters列表,突然之间,该页面没有拒绝ObjectDataSource,因为没有NamingContainer.当然,没有这些参数,数据绑定实际上不会起作用……我可以在代码中添加它们,但为什么它会重要? 解决方法
找到一个奇怪的解决方案,我将发布,我们可以讨论,也许找出为什么这个修复它.
在我的页面上,我有以下结构(稍微解释标签): 页 DropDownFilter 中继器 UserControl X. ObjectDataSource控件 ControlParameters引用DropDownFilter 结束ObjectDataSource 最终用户控件X. 结束中继器 结束页面 正如您所看到的,在Repeater中,ItemTemplate是用户控件,而后者又拥有带有ControlParameters的“有罪”ObjectDataSource.这些控制参数在引用的父页面上具有DropDownList过滤器的名称(所以基本上,如果将此控件添加到任何其他页面,如果它找不到具有正确名称的控件,它当然会失败). 因此,当我通过并将所有ControlParameters更改为Parameters(删除对该DropDownList控件的引用)时,现在我不再收到错误. 我可以假设的是,这个数据源在父页面上引用了一个控件这一事实意味着它很难被添加回DataBind()上的页面控件集.如果它根本失败的话,你会认为它会第一次失败,所以这仍然是一个谜. 有什么想法吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net mvc 3区域和url路由配置
- asp.net – 在不使用HttpRequest的情况下获取主机名
- asp.net-mvc – 如何手动创建简单的成员资格sql表?
- asp.net-mvc-3 – 如何将数据自动完成HTML属性添加到TextBo
- asp.net-mvc-2 – 如何格式化内联剃刀变量
- asp.net – 脚本管理器控件实际上是做什么的?
- Asp.Net MVC5代码的筛选器(ActionFilter)执行递归链表分析
- asp.net页面SqlCacheDependency缓存实例
- asp.net-mvc – 如何在SelectList文本描述中组合两个字段?
- asp.net-mvc-3 – 在if语句中的Asp.net MVC 3 Razor代码问题
- asp.net – 如何在dotnetnuke网站上为global.asc
- asp.net-mvc-5 – 在GenerateUserIdentityAsync方
- asp.net-mvc – Firefox 4不呈现部分页面
- ASP.NET MVC中的“Generic”OpenID 5
- ASP.NET MVC中的角色缓存策略
- asp.net – Page.IsValid如何工作?
- asp.net – 要排除的Nuget和源控制文件?
- asp.net-mvc – Log4net日志记录无效 – asp.net
- ASP.NET CAPTCHA实现
- asp.net-core-mvc – 在Entity Framework Core中