ASP.NET控件开发基础(19)
http://tech.ddvip.com 2007年09月02日 社区交流
内容摘要:上两篇讨论了基本数据绑定控件的实现步骤,基本上我们按着步骤来就可以做出简单的数据绑定控件了。过年前在看DataGrid的实现,本来想写这个的,但2.0出了GridView了,再说表格控件实现比较复杂,所以先放着。我们一起打开MSDN来看点别的,当然主题还是离不开数据绑定控件。
2.2呈现
CheckBoxList为复合控件,本该重写TagKey属性和CreateChildControls方法等,而是在构造函数中添加了CheckBox。.net提供了一个RepeatInfo的辅助类,其与实现IRepeatInfoUser接口的控件搭配使用,此类的RenderRepeater方法会调用CheckBoxList的RenderItem方法,然后根据控件的布局自上而下呈现项列表信息。要区分清楚RenderItem方法位呈现一条项信息,RenderRepeater方法是呈现列表信息
此实现过程在Render方法中实现,而非RenderContents方法.
protected override void Render(HtmlTextWriter writer)
{
RepeatInfo ri = new RepeatInfo();
//设置呈现布局
ri.RepeatColumns = RepeatColumns;
ri.RepeatDirection = RepeatDirection;
ri.RepeatLayout = RepeatLayout;
short ti = 0;
if (TabIndex != 0)
{
check_box.TabIndex = TabIndex;
ti = TabIndex;
TabIndex = 0;
}
//呈现项列表信息
ri.RenderRepeater(writer, this, ControlStyle, this);
if (ti != 0)
TabIndex = ti;
}
2.3预呈现
将CheckBoxList中属性赋给子控件,在呈现之前执行必要的预呈现
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
check_box.AutoPostBack = AutoPostBack;
check_box.CausesValidation = CausesValidation;
check_box.ValidationGroup = ValidationGroup;
//自动回传
for (int i = 0; i < Items.Count; i++)
{
if (Items[i].Selected)
{
check_box.ID = i.ToString(CultureInfo.InvariantCulture);
Page.RegisterRequiresPostBack(check_box);
}
}
}
责编:豆豆技术应用
- asp.net 视频教程
- asp.net 数据库编程
- asp.net 入门教程
- ado.net 教程
- asp.net 基础讲座
- asp.net ajax 教程
- asp.net ajax 入门系列
- asp.net 控件开发基础
- asp.net 2.0 服务器控件
- asp.net 2.0 教程
- asp.net 控件开发
- asp.net 类
- asp.net 分页
- asp.net 页面缓存
- asp.net 常见问题解决
- asp.net 2.0 母版页
- asp.net SQL Server
- asp.net 错误
- asp.net 事件
- asp.net 组件
- asp.net 性能
- asp.net 文件上传
- 更多asp.net专题……