databoundtemplate.cs
来自「asp.net技术内幕的书配源码」· CS 代码 · 共 64 行
CS
64 行
using System;
using System.Web;
using System.Web.UI;
using System.Collections;
namespace myControls {
[ParseChildren(true)]
public class DataBoundTemplate : Control {
private IEnumerable _dataSource;
private ITemplate _itemTemplate;
public IEnumerable DataSource {
get {
return _dataSource;
}
set {
_dataSource = value;
}
}
protected override void OnDataBinding(EventArgs e) {
IEnumerator objDataEnum;
DataBoundTemplateItem objItem;
if (DataSource != null) {
Controls.Clear();
objDataEnum = DataSource.GetEnumerator();
while ( objDataEnum.MoveNext() ) {
objItem = new DataBoundTemplateItem( objDataEnum.Current );
ItemTemplate.InstantiateIn( objItem );
Controls.Add( objItem );
}
}
}
[TemplateContainer(typeof(DataBoundTemplateItem))]
public ITemplate ItemTemplate {
get {
return _itemTemplate;
}
set {
_itemTemplate = value;
}
}
}
public class DataBoundTemplateItem : Control, INamingContainer {
private object _dataItem;
public DataBoundTemplateItem( object DataItem ) : base() {
_dataItem = DataItem;
}
public object DataItem {
get {
return _dataItem;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?