第10章 as.net 数据绑定.pptVIP

  • 0
  • 0
  • 约8.02千字
  • 约 54页
  • 2019-01-30 发布于江苏
  • 举报
第10章 as.net 数据绑定

本节示例网站GridViewDemo说明 为了清晰地展示出GridView的使用技巧,实例使用手工数据绑定方式。 绑定的数据来自于Clients表,对应的类为ClientInfo,GridView绑定到ListClientInfo集合对象。ClientInfoAccessObj对象包含一系列的方法,使用ADO.NET技术从数据库中提取与更新数据。 上述两个类均放置于示例网站的App_Code文件夹下。 这种网站架构也用于本系列的大实例HappyBookShop中。 * 实例1:自定义显示列和列标题 可以让GridView只显示特定的列,并且指定列的标题。 Demo: CustomizeColumns.aspx * 实例1要点: * 从这个例子中可以知道 GridView会根据绑定的数据源自动创建列,这是通过反射实现的。 每个列都是一种特定类型的DataControlField,可以通过设置它的一些属性来定制它的外观和行为。 对于BoundedField,设定它的DataField,可以显示它所绑定的数据对象特定属性的值。 * 实例2:自定义分页 当绑定到SqlDataSource时,GridView的分页功能是自动实现的,不需要编写一行代码。然而,当绑定到功能较少的数据源,如ListT时,就必须自己定义分页代码了,另外,分页的格式往往也希望能自定义。 Demo: GridViewPaging.aspx * 每页显示5条记录 自定义分页按钮格式 实例2要点: 设置GridView的AllowPaging=True; PageSize=5; 在GridView的PageIndexChanging事件中,设置其PageIndex为新页,然后重新绑定数据实现分页。 设置GridView的PagerSettings和PagerStyle属性自定义分页按钮。 * 从这个例子中可以知道 分页时GridView会触发PageIndexChanging事件,相应的,分页完成时会触发PageIndexChanged事件。在GridView中有不少事件是这样配对的。 一般来说,在“-ing”事件中,其参数e包含了重要的信息,例如分页事件中的e.NewPageIndex属性代表了新页码。而设置e.Cancel = true则可以取消这一操作。 当需要修改GridView显示的数据时(比如跳转到新的一页),需要重新绑定数据。 * GridView自定义分页 GridView具备自动分页的特性。这就是说,只要将绑定到一个数据源,并设置其每页显示的行数和要显示的页码,GridView会自动从数据源中提取数据(从开头第一页到要显示的页,然后丢弃前面的N-1页,只显示第N页)。对于ListT,由于其实现了IList接口,因此也具备自动分页的特性。 可以通过每次只提取所需要的数据来提升性能,这时需要人工编写代码来完成数据的提取工作,然后再将数据绑定到GridView。这种方法称为“自定义分页”。为达到最佳性能,往往还禁用GridView的视图状态( EnableViewState =false),完全用其他标准的ASP.NET控件来实现分页功能。 * 实例2延伸:GridView自定义分页 Demo: GridViewCustomizePaging.aspx * (1)查看一下源文件,禁用ViewState可以减少多少数据量的传输! (2)GridView内置对于分页界面的定制,只需添加一个数据分页模板PagerTemplate 就可以实现同这个示例一样的功能。可通过查询MSDN实现示例的这种导航方式。 实例3:排序 GridViewSort.aspx * 即可以单击按钮,也可以单击列标题进行排序 支持多列排序 实例3要点: 响应Sorting事件,在此事件中编码进行数据绑定。 利用委托实现对泛型数组中的对象进行排序。 GridView的一个基本编程方法: 给GridView什么样的数据,它就忠实地呈现什么样的数据。 自我拓展训练: 本示例是升序排列,如何让其也支持降序排列? * 实例4:记录的删除 GridViewDelete.aspx * 实例4要点 ButtonField可以绑定到数据源以显示不同的文字,单击它GridView会触发RowCommand事件。此事件参数e有以下重要属性: e.CommandName属性表明哪个按钮被单击。 e.CommandArgument属性表明是哪一行,这个值是由GridView自动填充的。 e.CommandSource则代表了GridView自身。 * GridView预定义的CommandName 当一个ButtonField的CommandName是以下预定义值时,相应的事件被触发: Canc

文档评论(0)

1亿VIP精品文档

相关文档