使用 ASP+ 列表绑定控件(上)

asp+|控件

简介
  
    Repeater、DataList和DataGrid控件构成ASP+页面框架中System.Web.
  UI.WebControls名称空间内的相关Web控件集。这些控件使HTML显示所绑
  定列表或数据源的内容。因此,将它们统称为“列表绑定控件”。
  
  与框架中的其它 Web
  
    控件类似,这些控件提供一致的编程模型并封装一个独立于浏览器的
  表示逻辑。这些特性使开发人员能够针对对象模型编程而不用必须掌握与
  HTML 相关的那些不一致的和复杂的技术知识。
  
    这三种控件可以按多种布局(包括列表、分栏/报纸栏目和流布局
  (HTML流))来表示与其相关的数据源内容。此外,它们还允许您创建完
  全不同的或完全定制的布局。除了封装有表示逻辑外,还提供了用来处理
  已发送数据、执行状态管理和引发事件的功能。最后,它们还对诸如选择、
  编辑、分页和排序之类的标准操作提供不同级别的支持。这些控件可以简
  化几种常见的 Web 应用程序方案,包括报表、购物车、产品列表、查询
  结果和导航菜单。
  
    下面几节将进一步说明这些控件和如何在您的 Web 应用程序中使用
  它们,以及如何选用控件。
  
  列表绑定控件是如何工作的?
  
    本节是本文其余部分的背景材料。概述了这些列表绑定控件的工作方
  式、它们的共同特性以及某些相关概念。
  
  DataSource 属性
    每个控件都有一个DataSource属性,其类型为System.Collections.
  ICollection。用最简单的话来说,数据源是同类对象的一个列表或集合。
  
    此框架中有几个对象提供了 ICollection 的实现。这个集合包括
  System.Data.DataView(它通常用来访问关系数据库和 XML 数据)、一
  般ICollection实现(如ArrayList和Hashtable)以及数组。
  
    与传统的数据绑定控件(它们通常需要ADO记录集)不同,除了实现
  ICollection接口之外,这些列表绑定控件未对其数据源强加任何其它要
  求。根据设计,通过大量增加可作为有效DataSource属性值的类型和数据
  结构,它们能够为您的应用程序代码实现最大程度的简单和灵活性。
  
  项目集合
  
    每个列表绑定控件都包含一个项目集合。控件通过列举这些对象当前
  的数据源来置入其项目集合。在列举中为每个对象创建单个项目并用于表
  示该对象。这些项目同时成为列表绑定控件中包含的控件层次结构的一部
  分。
  
  下表列出了与数据源的数据相关联的项目类型。
  
  项目 创建的默认项目类型
  AlternatingItem 为项目集合中具有奇数下标的项目创建
  SelectedItem 为选定的项目创建(不论该项目是否为备选项目)
  EditItem 为处于编辑模式下的项目创建(不管它是否被选中或是否为备选项目)
  
  
    控件同时创建将在表示中用到的下列项目。但是,它们并不与数据源
  的数据相关联。
  
  标头 用来表示标头信息
  注脚 用来表示注脚信息
  分隔符 用来表示图 1 中所示的每个项目之间的内容,并且仅适用于 Repeater 和 DataList
  分页符 用来表示与 DataGrid 控件相关联的分页 UI
  
      
  
  项目的数据绑定和创建
  
    列表绑定控件遵循在整个 ASP+ 框架中实现的显式数据绑定模型。这
  意味着控件仅当其 DataBind 方法被调用时才需要并列举其数据源。
  
  当调用 DataBind
  
    方法时,列表控件将列举其数据源、创建项目并通过从其数据源中提
  取值来对其进行初始化。如果启用了状态管理,则控件还将保存所需的全
  部信息,以便在页面的回传处理期间重新创建其项目而无须重新设置数据
  源。
  
    显式数据绑定模型使您的应用程序代码可以精确地确定在处理序列中
  何时及何处需要数据源。这种功能使对数据库服务器的访问更少且更高效,
  而这些访问通常是 Web 应用程序最耗费资源的操作。
  
    一般规则是每当您需要重新创建项目时都必须调用DataBind。在大多
  数情况下,您将在您的页面首次被请求创建初始项目集合时调用DataBind。
  在该页面的后续执行过程中,您将需要在引起项目集合被更改的各种事件
  处理程序中调用此方法。当用于创建初始数据源的查询被修改时,就可能
  发生这种情况。当项目的状态改变(如从只读模式变为编辑模式)时也可
  能发生这种情况。
  
  样式
  
    通过在对象模型上使用样式属性,您可以定义全部DataList和DataGrid
  控件及其所包含项目的格式和外观。这些属性允许定制字体、颜色、边框
  和其它外观因素。控件本身的样式属性(如前景色、背景色、字体和边框
  样式)将影响整个控件的表示。
  
    此外,每个控件都包含与其所创建的项目类型相匹配的大量样式属性,
  如as ItemStyle、AlternatingItemStyle和headerStyle。DataGrid提供
  第三级的样式属性,这些属性将影响特定列的所有单元格。控件中包含的
  每一列都可以拥有其自己的 headerStyle、FooterStyle 和 ItemStyle。
  
  模板
  
    样式控制格式显示,而模板则定义每个项目的内容和表示。您可以将
  模板看作HTML代码片断,它定义了用来表示项目的控件层次结构。
  
    Repeater 和 DataList 控件由您指定的模板来驱动,提供各种可设
  置的模板属性,如ItemTemplate、AlternatingItemTemplate和header
  Template。与样式类似,每个模板都对应于一个特定类型的项目。
  
    DataGrid 控件未模板化。但是,控件的 Column 集合中的 Template
  Columns使DataGrid中模板的使用成为可能。TemplateColumn中的每个单
  元格都可以包含一个模板,这与 Repeater 或 DataList 控件中的项目极
  为类似。这也使 DataGrid 中的定制表示成为可能。
  
  模板中的数据绑定
  
    模板定义项目中包含的控件层次结构。通过使用数据绑定表达式,此
  层次结构中的控件属性可绑定到与此项目相关联的数据属性上。
  
    作为模板的逻辑父级的项目在数据绑定表达式中被称为“容器”。每
  个容器都有一个称为DataItem的属性,该属性引用其相关联的数据。结果
  是,模板中的大多数典型数据绑定表达式都将控件属性绑定到 Container.
  DataItem的某个属性上。将在以下几节介绍的示例中进一步说明这种绑定。
  
  Repeater 控件
  
    如前面所述,Repeater控件是完全由模板驱动的,允许创建完全可定
  制的表示和布局。下图说明了这一功能。
  
  
  
  摘自 Repeater1.aspx:
  
  〈%@ Page language="C#" s

时间: 2024-08-03 10:14:55

使用 ASP+ 列表绑定控件(上)的相关文章

使用 ASP+ 列表绑定控件 (转自ms 一)

asp+|控件 使用 ASP+ 列表绑定控件Nikhil KothariMicrosoft Corporation 2000年7月 摘要: 说明 ASP+ Repeater.DataList 和 DataGrid 服务器控件.这些控件能够实现一个根植于数据源的,基于 HTML 的应用程序用户界面.讨论与这些控件有关的概念并概要介绍使用这些控件的基本示例. 目录简介 列表绑定控件是如何工作的? Repeater 控件 DataList 控件 DataGrid 控件 Repeater.DataLis

使用 ASP+ 列表绑定控件 (转自ms 二)

asp+|控件 DataGrid 控件DataGrid 控件使您可以生成数据源格式丰富的列表表示.此外,它还支持随其它操作选择项目. 本节的四个示例使用包含有关书名信息(标题.标题 ID.作者.价格和出版日期)的表.全部数据都用 TitlesDB.xml 中的 XML 予以维持.在建立页面来表示此表的内容并选择书籍时,这些示例遵循增量方法.代码列表包含黑体文本,以表明一个示例构建于以前示例时所作的更改. 截自 TitlesDB.xml: <root><schema id="Do

使用 ASP+ 列表绑定控件(中)

asp+|控件 Repeater1Page 类覆盖了 Page 类的 OnLoad 方法.此表示在对该页   的首次请求中调用 DataBind.这将导致对这些页上的数据绑定表达式求   值并使 repeater 控件列举数据源以及创建其项目.仅在首次请求时调用   DataBind 方法.这之所以能正常工作是因为 repeater能够在从前一次保   存状态的回传过程中重新创建其项目,而无需数据源实例.       此页将类型ICollection 的公用属性显露出来.这将在设置repeate

使用 ASP+ 列表绑定控件(下)

asp+|控件 DataGrid3       DataGrid3通过添加可视格式化和内容格式化构建于DataGrid2之上.      摘自 DataGrid3.aspx:      〈%@ Page language="C#" src="DataGrid.cs" inherits="Samples.Data   GridPage"%〉   ...      〈asp:DataGrid runat=server id="titlesG

asp.net fileupload控件上传文件与多文件上传_实用技巧

1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

C#发现之旅-高性能ASP.NET树状列表控件(上)

已有树状列表控件分析发现问题 近期发现有人在ASP.NET项目开发中使用一种叫dtree的树状列表组件加载缓慢.这也是笔者撰写本章的动机.毛主席教导我们,做事要发现问题,分析问题和解决问题.首先我们发现了已有的树状列表WEB控件加载缓慢的问题,接下来就很自然的是分析问题了. 下图就是dtree 运行界面的例子 分析问题 现在我们分析问题,对使用dtree生成树状列表的程序代码的分析,可以了解程序运行过程如下图所示 在这样的程序中,首先服务器端的C#代码查询数据库,然后根据查询所得数据拼凑出一个J

asp.net 读取数据库内容绑定到控件上的实例

asp教程.net 读取数据库教程内容绑定到控件上的实例   <%@ Page language="c#" src="AuthorBrowser.aspx.cs" AutoEventWireup="false" Inherits="AuthorBrowser" %> <HTML>   <body>     <form id="Form1" method="

使用反射将业务对象绑定到 ASP.NET 窗体控件

asp.net|对象|控件 John DyerDallas Theological Seminary 适用于:Microsoft Visual Studio 2005 及早期版本ASP.NET 1.1C# 编程语言Visual Basic 编程语言 摘要:使用反射以单行代码将业务对象绑定到 ASP.NET Web 窗体,从而降低复杂性并减少错误.(本文包含一些指向英文站点的链接.请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解.) 下载 MSDFormBind

asp.net学习之 数据绑定控件--表格绑定控件

原文:asp.net学习之 数据绑定控件--表格绑定控件     数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件是将其他 ASP.NET Web 控件(例如 Label 和 TextBox 控件)组合到单个布局中的复合控件.     例如,诸如 DetailsView 控件等数据绑定控件可绑定到一个结果集,例如,包含每个雇员的姓名.地址.职务等信息的雇员表.在 DetailsView 控件中,可以将 Labe