GridView 几个受保护的方法的注释

CreateChildTable 方法:
此方法为 GridView 创建一个表格,正常来说,GridView 只包含一个子控件,也就是使用此方法
创建的一个表格,如果需要创建自己的表格,可以重写此方法。

CreateRow 方法:
此方法是一个受保护的虚拟方法,GridView 中的每一行都是通过调用此方法来创建的,
如果需要对行进行一些特殊的处理,可以从 GridViewRow 继承子类,然后使用此方法返回此子类,
此方法只负责创建行对象,并没有把行添加到 GridView 里。

InitializeRow 方法:
此方法被始化 GridView 中的每一行,在一个行被创建后,只是一个空行,连一个单元格都没有,
在一个行被创建后,如果行的类型为 DataControlRowType.Pager 的话,就会调用 InitializePager
方法对行进行初始化,否则将调用 InitializeRow 方法对行进行初始化,
在此过程中,会创建一些需要显示的单元格,并调用每一列(列对象都是 DataControlField)的
InitializeCell 方法。

InitializePager 方法:
此方法用来初始化分页导航的行,在此方法中创建了所有用来翻页的控件。

CreateColumns 方法:
此方法每 GridView 创建需要显示的列,也就是一组 DataControlField,此方法返回一个
ICollection 对象(实际是一个 ArrayList 对象),此对象包含了 GridView 对象需要显示的
所有列信息,如果需要添加附加的列,可以重写此方法,以在返回的集合中添加自己的列。

CreateChildControls(IEnumerable, bool) 方法:
此方法是根据数据源和相关的设置来创建需要显示的控件,主要是一个表格,此返回创建的控件数,
如果数据源中没有数据,GridView 将根据 EmptyDataTemplate 和 EmptyDataText 两个属性来显示
信息,如果这两个属性都没有设置,GridView 将不显示任务的内容。
在 DataGrid 中,如果数据源没有数据,将也会显示一个表头,GridView 不显示表头了,对于有些
用户来说,可能有点不习惯。
如果需要在没有数据的时候也要显示表示,可以重写此方法,在此方法,通过 CreateColumns 方法
获取到需要显示的列,在调用 CreateRow 方法创建一行,在调用 IntializeRow 方法来初始化创建
的行,最后在把行添加到表格里,这里需要说明的一点是,如果 GridView 没有显示任何的东西,
那么它的 Controls 里是没有一个控件的,我们需要自己创建一个 Table 对象,并添加到 Controls
集合中。

posted @ 2007-01-09 17:07  匡匡  阅读(518)  评论(0编辑  收藏  举报