在ASP.Net中创建动态表格(1)
点击次数:20 次 发布日期:2008-11-26 14:44:53 作者:源代码网
|
源代码网推荐 源代码网推荐 简介 源代码网推荐 源代码网推荐 DataGrid 控件可以用于若干个只读数据。该控件可用于数据表格布局的输出进行简化。还提供多个机制,用于通过超级链接及其对选择、排序、分页和原地编辑和其它特性的支持,为输出添加交互性。这使得该控件在若干的常见 Web 应用方案中很有用,诸如列表、购物车和查询结果。 源代码网推荐 源代码网推荐 DataGrid 还提供一些功能,这些功能具有 ASP.NET 架构所特有的所有服务器控件的特点。该控件包含进行与浏览器无关的输出所需的逻辑,同时提供了一个统一的编程模型,从而能够处理回传数据,以及对请求之间的状态进行管理。这样,开发者就可以针对带有属性、方法和事件的对象模型进行编程,而不必处理直接用 HTML编程所带来的不一致性和复杂性。 源代码网推荐 源代码网推荐 我们要建立什么? 源代码网推荐 源代码网推荐 本文举出了一系列的示例页面,彼此结合,从而最终生成一个页面,该页面以示例数据库的 Authors 表和 Titles 表为依据,提供主/详细资料视图(该数据库随 Microsoft SQL Server?2000 一起发运)。序列中的每个页面均介绍 DataGrid 控件的一个新的特性或功能。下图从 pubs 数据库抽取出来的。 源代码网推荐 主/详细资料视图似于 Microsoft Access 所介绍的窗体/子窗体概念。也类似于随 Microsoft Visual InterDev 6.0 一起发表的 DataForm Wizard (数据窗体向导)。主/详细资料视图显示一到多的关系结果,其中视图的一个部分显示第一个查询或主查询的结果。然后跟踪一个选择,以筛选所使用的第二个查询的结果,从而在视图的另一部分显示选择内容的详细资料。 源代码网推荐 源代码网推荐
源代码网推荐 源代码网推荐 图 1. 完成的页面 源代码网推荐 源代码网推荐 图 1 将 Author 列表显示在页面的上半部分,并将关于所选作者的详细资料(包括相关书名)显示在下半部分。 Authors 列表和 Titles 均是用 DataGrid 控件加以表示的。 显示作者的 DataGrid 举例说明如何进行选择、排序、和分页。显示书名的 DataGrid 演示如何进行原地编辑、格式化和定制列。 源代码网推荐 源代码网推荐 数据访问 源代码网推荐 源代码网推荐 为了使示例自成一体,从 SQL Server 抽取数据并将该数据连同其架构信息一同保留为一个 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="Author"> 源代码网推荐 <complexType content="elementOnly"> 源代码网推荐 <element name="au_id" type="string" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="au_name" type="string" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="address" type="string" minOccurs="0" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="city" type="string" minOccurs="0" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="state" type="string" minOccurs="0" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="zip" type="string" minOccurs="0" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="phone" type="string" minOccurs="0" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 </complexType> 源代码网推荐 <unique name="AuthorConstraint" msdata:PrimaryKey="True"> 源代码网推荐 <selector>.</selector> 源代码网推荐 <field>au_id</field> 源代码网推荐 </unique> 源代码网推荐 </element> 源代码网推荐 源代码网推荐 <element name="Title"> 源代码网推荐 <complexType content="elementOnly"> 源代码网推荐 <element name="title_id" type="string" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="au_id" type="string" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="title" type="string" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 <element name="price" msdata:DataType="System.Currency" 源代码网推荐 type="string" 源代码网推荐 minOccurs="1" maxOccurs="1"></element> 源代码网推荐 <element name="pubdate" type="timeInstant" minOccurs="1" 源代码网推荐 maxOccurs="1"></element> 源代码网推荐 </complexType> 源代码网推荐 <unique name="TitleConstraint" msdata:PrimaryKey="True"> 源代码网推荐 <selector>.</selector> 源代码网推荐 <field>title_id</field> 源代码网推荐 </unique> 源代码网推荐 <key name="AuthorTitle"> 源代码网推荐 <selector>../Author</selector> 源代码网推荐 <field>au_id</field> 源代码网推荐 </key> 源代码网推荐 <keyref refer="AuthorTitle"> 源代码网推荐 <selector>.</selector> 源代码网推荐 <field>au_id</field> 源代码网推荐 </keyref> 源代码网推荐 </element> 源代码网推荐 </schema> 源代码网推荐 <DocumentElement> 源代码网推荐 <Author> 源代码网推荐 <au_id>154-00-1300</au_id> 源代码网推荐 <au_name>John Doe</au_name> 源代码网推荐 <phone>425 705 1234</phone> 源代码网推荐 <address>One Microsoft Way</address> 源代码网推荐 <city>Redmond</city> 源代码网推荐 <state>CA</state> 源代码网推荐 <zip>98005</zip> 源代码网推荐 </Author> 源代码网推荐 <Title> 源代码网推荐 <title_id>BU1032</title_id> 源代码网推荐 <au_id>213-46-8915</au_id> 源代码网推荐 <title>The Busy Executive"s Database Guide</title> 源代码网推荐 <price>19.99</price> 源代码网推荐 <pubdate>1991-06-12T07:00:00</pubdate> 源代码网推荐 </Title> 源代码网推荐 </DocumentElement> 源代码网推荐 </root> 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 这些样例简化了数据访问,从而将重点全部放在 DataGrid 的使用上。上面的 XML 被加载进一个 DataSet。 DataSet 为数据提供高速缓存,从而可以进行筛选、排序和编辑等等各种操作。下面的代码来自 Global.asax,用于加载 DataSet 和将其保存为 Session 状态。 源代码网推荐 源代码网推荐 源代码网推荐 public void Session_OnStart() { 源代码网推荐 // 将样例中所用的数据载入会话范围的 DataSet. 源代码网推荐 源代码网推荐 FileStream fs = null; 源代码网推荐 DataSet ds = null; 源代码网推荐 try { 源代码网推荐 fs = new FileStream(Server.MapPath("Data\TitlesDB.xml"), 源代码网推荐 FileMode.Open, FileAccess.Read); 源代码网推荐 ds = new DataSet(); 源代码网推荐 ds.ReadXml(fs); 源代码网推荐 } finally { 源代码网推荐 if (fs != null) { 源代码网推荐 fs.Close(); 源代码网推荐 fs = null; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 Session["AppData"] = ds; 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 在实际的 Web 应用程序中,通常不是使用处于 Session 或 Application 状态的高速缓存数据,而是通过所存储的过程、中间层业务对象,或通过调用 Web 服务所揭示的方法来访问和修改数据。无论采取怎样的手段来访问数据,您会发现你依旧以同样的方式来编程和与控件的对象模型进行进行交互。 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
