此外,在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。 |
方法名 | 描述 |
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中的几个重要控件。
广州网站建设,网站建设,广州网页设计,广州网站设计