我有一个compositeDatabound控件:MyGrid,MyItemTemplate和MyContainer容器。 我有一个类的用户。泛型复合数据绑定控件
public class MyGrid: CompositeDataBoundControl
{
[TemplateContainer(typeof(MyGrid.MyContainer))]
public ITemplate MyItemTemplate
{
//get;set;
}
public class MyContainer: Control, INamingContainer
{
//return DataItem of type User
}
//rest of all code
}
这可以帮助我使用:<%# Container.DataItem.FirstName %>
其中FirstName是用户类中的一个属性。
现在我想使它成为一个通用的网格即MyGrid<T>
所以我要修改我TemplateContainer以及这样的:
[TemplateContainer(typeof(MyGrid<>.MyContainer))]
的MyGrid类编译罚款没有任何错误:我创建了一个具体类即
MyUserGrid: MyGrid<User>
它编译也很好。但这不是ASP.NET所喜欢的。我指的是类本身编译没有错误,但我可以不再使用:
<%# Container.DataItem.User.FirstName %>
任何帮助/想法如何使这一类型化的网格,以通用类型化的电网?
This是我发现的东西,看起来很复杂。这是唯一的方法吗?我不想在链接中传递类型。相反,我将通过派生一个泛型类来创建我的具体类。
我尝试不断给我这个错误:Invalid expression term '>'
补充:这是ASP.NET 2.0 Web窗体