随笔- 313  评论- 12176  文章- 1 

Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable

English Version: http://dflying.dflying.net/1/archive/124_introduction_to_atlas_controls_in_namespace_sysdata__datacolumn_datarow_and_datatable.html

 

本系列有如下三篇文章:

  1. Atlas命名空间Sys.Data下控件介绍——DataSource和XMLDataSource
  2. Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
  3. Atlas命名空间Sys.Data下控件介绍——DataView和DataFilter

在这篇文章中我们将要接触Atlas客户端数据组件中的核心组件——DataTable。顾名思义,DataTable用来表示一个表格状的数据结构。在Atlas客户端数据组件中,DataTable对象是数据源(例如DataSource对象,请参考:Atlas命名空间Sys.Data下控件介绍——DataSource和XMLDataSource )和数据显示控件(例如ListView控件,请参考:使用ASP.NET Atlas ListView控件显示列表数据 )之间的桥梁。DataTable对象是DataSource对象中的一个字段,DataSource对象从服务器取得的数据将被解析并存放在这个DataTable对象中。DataTable对象还可以被DataView对象修饰,例如过滤并只显示其中一部分的行,按照某一列排序,分页等等,当然这些操作都是在客户端进行的,有着极高的效率。

Atlas的Sys.Data组件借用了很多大家都熟悉的ASP.NET和ADO.NET的架构。例如,Atlas的DataSource类似于ADO.NET中的SqlDataSource对象,Atlas中的DataTable类似于ADO.NET中的DataTable对象,Atlas中的ListView类似于ASP.NET中的ListView对象。这种开发模型让我们开发人员感到非常熟悉并更加容易上手。

DataTable类包含一个DataColumn对象的集合以及一个DataRow对象的集合,让我们从DataColumn和DataRow对象开始:

Sys.Data.DataColumn

DataColumn类非常简单,只有如下几个很容易理解的属性:

  1. columnName:本列的名称。
  2. dataType:本列中的数据类型。
  3. defaultValue:本列中数据的默认值。
  4. isKey:本列中是否为DataTable的关键字段。
  5. readOnly:本列中的数据是否为只读属性。

Sys.Data.DataRow

DataRow类略显复杂,包含如下属性:

  1. $isDirty:该行是否经过修改并且尚未提交到服务器保存。
  2. $index: 该行在DataTable中的索引值。
  3. $selected:该行是否被选中。

还包含有如下事件:

  1. propertyChanged:当上述的三个属性被改变时被引发。

Sys.Data.DataTable

下面轮到DataTable了,DataTable类实现了Sys.Data.IData接口,该接口提供的方法在下面的方法列表中,这里不单说明。

DataTable对象有如下属性:

  1. columns:取得当前DataTable对象中DataColumn对象的集合。您可以对该集合进行添加,删除或修改等操作以修改该DataTable的Schema。
  2. keyNames:该DataTable对象中所有关键列的columnName属性集合。
  3. length:该DataTable对象中DataRow数目。
  4. isDirty:该DataTable对象中是否有DataRow被修改且尚未提交到服务器保存。

DataTable对象有如下方法:

  1. add:将传入的DataRow对象添加到当前的DataTable中。传入的DataRow对象必须与该DataTable有同样的Schema。推荐首先使用createRow方法来创建新行,然后作为本方法的参数。
  2. clear:清除当前DataTable的所有行。
  3. remove:根据传入的DataRow对象,删除当前DataTable的某一行。
  4. createRow:根据当前DataTable的Schema创建一个新行。
  5. getChanges:取得对该DataTable的修改。该方法的返回值有如下三个集合:
    1. updated:修改过的DataRow的集合。
    2. inserted:添加过的DataRow的集合。
    3. deleted:删除过的DataRow的集合。
  6. getColumn:根据传入的列名查找并返回该DataTable中的某个DataColumn对象。
  7. getRow:根据传入的索引值返回相应的DataRow对象。
  8. getItem:与getRow方法功能完全一样,估计是为了提供一个更加泛化的名称。

还有如下事件:

  1. collectionChanged:当DataTable的行被改变后被引发。
  2. propertyChanged:当以上的某个属性被改变后被引发。

关于DataTable的使用方法以及常见操作,请见我的另一篇文章(英文):Introduction to Atlas DataTable

posted on 2006-04-15 12:29  Dflying Chen  阅读(...)  评论(...编辑  收藏