0 Comments

深入剖析微软ASP.NET Ajax中的数据绑定架构上篇之

发布于:2013-10-21  |   作者:广州网站建设  |   已聚集:人围观
类Sys.Preview.Data.DataFilter被设计为所有过滤器的抽象基类。它提供一个抽象方法filter以便在派生类中实现特定的过滤规则。
此外,在Futures January CTP中还提供了一个内置的过滤器—PropertyFilter,通过一个指定的属性及其属性值来过滤数据项。
【作者注】首先,这个DataView控件与ADO.NET 2.0提供的DataView控件存在相当不同。其次,因为我们的示例中主要使用的是ListView和ItemView控件,所以对此有兴趣的读者可以从这里得到一个相关示例(尽管这个例子是以前版本的Atlas提供的,但是参考本文中的相关示例,你可以略加修改即可在新环境下运行)。
(三)DataTable控件
现在,我们来讨论另一个重要的控件—DataTable,这个控件实现了Sys.Data.IData接口。通过分析随同MS AJAX框架发行的源代码及示例程序,我们可以容易地发现许多重要的控件(例如DataSource,DataView,ItemView和ListView)都使用该DataTable控件来存储它们的数据。因此,当你在MS AJAX中使用数据绑定时,你将经常与这个控件打交道。但篇幅所限,在此,我们也仅列出它的常用事件、属性和方法。
DataTable控件中的事件定义:
广州网站建设,网站建设,广州网页设计,广州网站设计

事件名 描述
collectionChanged 当行集合改变时(例如添加,删除或者修改)调用。
propertyChanged 无论何时改变一个或多个属性时都被调用。

DataTable控件中的属性定义:
属性名 描述
columns 返回一个Sys.Preview.Data.DataColumn数组,类似于一个数据库表格的结构。
keyNames 返回一个字符串数组,用于描述DataTable中的关键字列。
length 返回DataTable中所有记录的总数。
isDirty 如果DataTable中的数据已经改变并且还没有被写回到数据库,那么,这个属性被置为true;否则为false
 
DataTable控件中的方法定义:

方法名 描述
Delete(rowObject) 从当前DataTable中删除一行(即对应作为参数的行)
get_length() 返回记录总数
add(rowObject) 在当前DataTable的最后添加一个新行
clear() 删除当前DataTable中的所有数据
createRow(initialData) 根据当前列结构创建一个新的Sys.Preview.Data.DataRow
getChanges() 返回针对当前DataTable的修改操作,返回值为下列之一:
·         Updated—最近更新的Sys.Preview.Data.DataRow;
·         inserted—新插入的Sys.Preview.Data.DataRow;
·         Deleted—新删除的Sys.Preview.Data.DataRow。
getColumn(name) 根据传递的列名从该DataTable中返回一个DataColumn对象。
getRow(index) 返回一个对象DataRow
getItem(index) 与方法getRow相同

(四)DataColumn及DataRow控件
读者应该很容易猜出,前面的DataTable包含一个DataColumn对象的集合和一个DataRow对象的集合。既然客户端DataColumn和DataRow控件的设计是用于模仿它们的ADO.NET2.0对应物—DataColumn和DataRow,所以,我们可以从前面的图3中非常容易地理解它们的对应关系。篇幅所限,我们在此省略对这两个控件的讨论。
现在,让我们转而讨论另一个命名空间—Sys.Preview.UI.Data中的几个重要控件。
广州网站建设,网站建设,广州网页设计,广州网站设计
标签:
飞机