DataGrid 控件
DataGrid 控件使您可以生成数据源格式丰富的列表表示。此外,它还支持随其它操作选择项目。
本节的四个示例使用包含有关书名信息(标题、标题 ID、作者、价格和出版日期)的表。全部数据都用 TitlesDB.xml 中的 XML 予以维持。在建立页面来表示此表的内容并选择书籍时,这些示例遵循增量方法。代码列表包含黑体文本,以表明一个示例构建于以前示例时所作的更改。
截自 TitlesDB.xml:
<root>
<schema id="DocumentElement" targetNamespace=""
xmlns=http://www.w3.org/1999/XMLSchema
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<element name="Title">
<complexType content="elementOnly">
<element name="title_id" type="string"></element>
<element name="title" type="string"></element>
<element name="au_name" type="string"></element>
<element name="price" msdata:DataType="System.Currency"
minOccurs="0"
type="string"></element>
<element name="pubdate" type="timeInstant"></element>
</complexType>
<unique name="TitleConstraint" msdata:PrimaryKey="True">
<selector>.</selector>
<field>title_id</field>
</unique>
</element>
</schema>
<DocumentElement>
<Title>
<title_id>BU1032</title_id>
<title>The Busy Executive's Database Guide</title>
<au_name>Marjorie Green</au_name>
<price>19.99</price>
<pubdate>1991-06-12T07:00:00</pubdate>
</Title>
...
</DocumentElement>
</root>
在典型的 Web 应用程序中,为了获得最大的可伸缩性和性能上的好处,很可能会使用 Web 服务或商业对象来存取数据。为了简化这些示例并将注意力集中在使用 DataGrid 而不是数据存取上,我们选择在应用程序启动时一次性加载数据,并在 Global.asax 中的 ASP 应用程序状态中高速缓存所得的 DataSet,如下所示。
截自 Global.asax:
public void Application_OnStart() {
FileStream fs = null;
DataSet ds = null;
try {
fs = new FileStream(Server.MapPath("TitlesDB.xml"), FileMode.Open,
FileAccess.Read);
ds = new DataSet();
// 将 xml 文件中的数据加载到 DataSet 中
&nb