内CompositeControl的数据绑定控件

我创建了一个CompositeControl的是本质上是一个多视图的包装,但如果我尝试使用任何数据绑定控件,如GridView控件或FormView控件查看里面,我得到的错误:

Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.

我剥去堂课下来到最低限度,我仍然得到错误。 这个类看起来是这样的:

[DefaultProperty("Pages"), ParseChildren(true, "Pages"), ToolboxData("<{0}:TestTabs runat=\"server\"></{0}:TestTabs>")] public class TestTabs : CompositeControl { private MultiView _multiViewControl; private Collection<View> _pages; public Collection<View> Pages { get { if (_pages == null) _pages = new Collection<View>(); return _pages; } } protected override void CreateChildControls() { _multiViewControl = new MultiView(); foreach (View page in Pages) { _multiViewControl.Views.Add(page); } if (_multiViewControl.Views.Count > 0) _multiViewControl.ActiveViewIndex = 0; this.Controls.Add(_multiViewControl); base.CreateChildControls(); } }

和标记如下:

<cc:TestTabs ID="testTabs" runat="server"> <asp:View runat="server"> <asp:FormView ID="fvTest" runat="server"> <ItemTemplate> <asp:Label ID="lblTest" runat="server" Text='<%#Eval("TestField")%>' /> </ItemTemplate> </asp:FormView> </asp:View> </cc:TestTabs>

如果我移动FormView控件的CompositeControl的外面,它没有问题databinds。 另外,如果我用一个标准的MultiView它工作正常。

有任何想法吗? 在此先感谢(第一篇文章,所以道歉,如果我错过了任何信息)

编辑:为了让事情更奇怪的,如果我解压FormView控件到一个单独的用户控件ASCX,并把该视图里面,它的作品!

--------------解决方案-------------

您可以继承CompositeDataBoundControl insted的的CompositeControl

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.163 (s). 10 q(s)