《 ASPNET数据库网站设计教程(C#版)》 配套教学资源 第9章数据绑定与数据绑 定控件 9.5 本章内容:数据绑定, GridView控件, Details view控件, Form View控件,使用数据 绑定表达式实现数据绑定,调用 Databindo方法实现数据绑定。 本章重点: GridView控件, Details View控件,rormⅤiew控件 圖王出妖社
第9章 数据绑定与数据绑 定控件 9.5 《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 本章内容:数据绑定,GridView控件,Details View控件,FormView控件,使用数据 绑定表达式实现数据绑定,调用DataBind()方法实现数据绑定。 本章重点:GridView控件,DetailsView控件,FormView控件
95GridⅤiew控件 951 Grid View控件的语法 ■ Gridview控件的基本语法格式如下: 1 其他控件 Columns>
◼ 9.5.1 GridView控件的语法 ◼ GridView控件的基本语法格式如下: ◼ ◼ ◼ ◼ ◼ ◼ ◼ 其他控件 ◼ ◼ ◼ ◼ ◼ 9.5 GridView控件
2. Gridview控件的常用属性 表9-5 Grid view控件的常用属性 AllowPaging 设置是否启用分页功能 AllowSorting 设置是否启用排序功能 设置是否为数据源中的每个字段自动创建绑定字段,默认为true。但在实际开发中很少自动创 Auto GenerateColumns 建绑定列,总是根据情况让一些列不显示,例如显示用户列表的时候不会将用户密码显示出来 Columns 获取 grid view控件中列字段的集合 Page Count 获取在 grid view控件中显示数据源记录所需的页数 reIndex 获取或设置当前显示页的索引 besetting 设置GrdⅤiew的分页样式 PageSize 设置GrdⅤiew控件每次显示的最大记录条数
◼ 2.GridView控件的常用属性
3. Gridview控件的数据绑定列 ■ Grid\Ⅴiew控件通过设置 AutoGenerate Columns属性为true自 动创建列,也可以通过模板列创建自定义的列。在 Gridview、 Details View等控件中,对于绑定字段的值,有7 种类型的显示方式,见表9-6。Fild声明在 Gridview中是被 包含在.标记区块中的。 表9-6 GridView控件的数据绑定列类型 字段类型 说明 绑定字段列,表示在数据绑定控件中,将数据源中的字段值以字符形式显示,属于应用最多的类型。 BoundField 属性 DataFomat String可设置显示字段的格式,如{0C}。注意,只有当 HtmIcode属性设置为 false时 Data String才有效 复选框字段列,表示在数据绑定控件中,将数据源中的Bit型字段值,以复选框的形式显示。根据值 CheckBox Field 的true或 false显示选中或没选中 超链接字段列,表示在数据绑定中,将数据源中的字段值以超链接形式显示。可指定另外的 navigateUrl超链接,单击该超链接时,浏览器导航到指定的URL DataNavigate UrlFomat String属性的值为“ Show User. aspx? Userid={0}”,而 Data NavigateUrlFields属 性的值为“ Userid",显示每行数据时,会将该行对应的“ Userid”字段的值替换{0},类似于 HyperLinkField string. Format("ShowUser aspx?Userld=(o).d的值 属性 DataNavigateUrlFields绑定数据庳字段,如果为多个字段,则用“,”分隔。例如: DataNa vigateUrlFields="name, address, state, zip 属性 Datana vigateUrlFormatstring超链接到的页面。例如: Datana VigateUrlFormatstring"default. aspx? name=(0)& address=(1]& city=(2)& state=3)
◼ 3.GridView控件的数据绑定列 ◼ GridView控件通过设置AutoGenerateColumns属性为true自 动创建列,也可以通过模板列创建自定义的列。在 GridView、DetailsView等控件中,对于绑定字段的值,有7 种类型的显示方式,见表9-6。Field声明在GridView中是被 包含在…标记区块中的
图片字段列,表示在数据绑定控件中,将数据源中的字段值作为图片路径绑定,并把图片显示出来 ImageField 在数据绑定控件中,作为一个HIM标记的sre属性显示一个字段的值。绑定字段的内容应该是 图片的URL 表示一个特殊命令列,在数据绑定控件中,显示含有命令的按钮,常用的有“编辑”、“更新”、“取消”、 CommandField “选择”、“删除”。自动生成命令,无须手写 uod按钮字段列,表示在数据绑定控件中,字段的值以命令技钮方式显示。可以选择链接按钮或按钮的样式 模板字段列,表示在数据绑定控件中,显示用户自定义的模板内容。在 Grid view控件的 Template Field 字段中可以定义5种不同类型的模板。当需要创建一个定制的列字段时,可以使用本类型。模板可以包 Template Field含任意多个数据字段,还可以结合文字、图像和其他控件,可以使用HML控件或者web服务器控件 DataKeyNames属性用来设置 Gridview对应的数据源的主键列,只有设置这个属性,在删除的时候才 会把要删除的主键值传递给数据源执行删除功能
表97所列的属性代表每个列类型实际提供的属性的一个子 集。每个列类型定乂了一个定制的属性集,用以定义和配 置所绑定的字段。 表9-7 Grid View列的属性 属性 Aes表示 Assistive Technology设备的屏幕阅读器读取的缩写文本的文本 获得该列的页脚的样式对象 Foe获得和设置该列的页脚的文本 HeaderImaget获得和设置放在该列的标题中的图像的URL Hads获得该列的标题的样式对象 Headertext 获得和设置该列的标题的文本 Insert Visible 指示当它的父数据绑定控件处于插入模式时,该字段是否可见。该属性不适用于 Grid view控件 Item Style 获得各列的单元的样式对象 Show Header 指示是否生成该列的标题 获得和设置该列的标题被单击时用来排序网格内容的表达式。通常,该字符串属性被设置为所 SortExpression 绑定的数据字段的名称
◼ 表9-7所列的属性代表每个列类型实际提供的属性的一个子 集。每个列类型定义了一个定制的属性集,用以定义和配 置所绑定的字段
4. GridView控件的事件 ■ GridⅤiew控件的事件非常丰富,在 Gridview控件上操作时 就会产生相应的事件,要实现的功能代码写在相应的事件 中。 Gridview控件的常用事件见表9-8 表9-8 Grid View控件的常用事件 说明 PageIndex changing当前索引正在改变时触发 当放弃修改数据时触发。在一个处于编辑模式的行的 Cancel按钮被单击时触发,但是在该行退 Row CancelingEdit 出编辑模式之前发生 Row deleting 当删除数据时触发。在一行的 Delete按钮被单击时发生 RowEditing 当要编辑数据时触发。当一行的Ed计按钮被单击时,但是在该控件进入编辑模式之前发生 Row Updating当保存修改的数据时触发,在一行的Upat技钮被单击时发生,更新该行之前激发 SeletedIndex Changing在选择新行时触发。在一行的 Select技钮被单击时发生,处理选择操作之前激发 当操作排序列进行排序时触发。在对一列进行排序的超链接被单击时发生,在本控件处理排序 Sorting 操作之前激发 Row Created 在创建一行时触发
◼ 4.GridView控件的事件 ◼ GridView控件的事件非常丰富,在GridView控件上操作时 就会产生相应的事件,要实现的功能代码写在相应的事件 中。GridView控件的常用事件见表9-8
952 Gridview控件的使用示例 1.分页显示记录 【演练9-11】 Gridview控件的主要功能是以表的形式显示 数据,本例采用自动套用格式,分页显示 UserManagement 数据库中 UserInfo表的所有记录 口新建一个空网站C\ex911。添加 Default. aspx,在 Default. aspx. cs中添加对 SQL Server数据库命名空间的引用 在 web. config中添加数据库的连接字符串 ①在 Default. aspx的设计视图中,从工具箱的“数据”组中 ,向web窗体中添加一个 Gridview控件。 ■②单击选中 Gridview控件,在“属性”窗口中设置分页 Allow Paging为true,每页显示记录个数 Pagesize为3。设置 Gridview属性后,从Web窗体上能看到分页样式。最好在 Default. aspx.cs中用代码设置,更易于阅读
◼ 9.5.2 GridView控件的使用示例 ◼ 1.分页显示记录 ◼ 【演练9-11】 GridView控件的主要功能是以表的形式显示 数据,本例采用自动套用格式,分页显示UserManagement 数据库中UserInfo表的所有记录。 ◼ 新建一个空网站C:\ex9_11。添加Default.aspx,在 Default.aspx.cs中添加对SQL Server数据库命名空间的引用 。在web.config中添加数据库的连接字符串。 ◼ ① 在Default.aspx的设计视图中,从工具箱的“数据”组中 ,向Web窗体中添加一个GridView控件。 ◼ ② 单击选中GridView控件,在“属性”窗口中设置分页 AllowPaging为true,每页显示记录个数PageSize为3。设置 GridView属性后,从Web窗体上能看到分页样式。最好在 Default.aspx.cs中用代码设置,更易于阅读
③自动套用格式,在 Default. aspx的设计视图中,在 Gridview控件的右上角单击按钮,在任务面板中单击“自 动套用格式”,如图920所示 ■④显示“自动套用格式”对话框,在左侧栏中选择一种架 构,如“专业型”,如图9-21所示,然后单击“确定”按 钮。 s==:是 lunn Calum 选择架构 分页显示名单 ColuanoColumnlCo Gridview 中的了面 a)hmm时 pardew? 一确有应用0 图9-20 Grid view控件 图9-21“自动套用格式”对话框
◼ ③ 自动套用格式,在Default.aspx的设计视图中,在 GridView控件的右上角单击 按钮,在任务面板中单击“自 动套用格式”,如图9-20所示。 ◼ ④ 显示“自动套用格式”对话框,在左侧栏中选择一种架 构,如“专业型”,如图9-21所示,然后单击“确定”按 钮
⑤ Gridview分页时触发 PageIndex Changing事件,在 Gridview1控件的“属性”窗口中单击“事件”按钮切换 到事件列表,在事件列表中双击 PageIndex changing,添加 Gridview的 Pagelndex changing事件程序。代码如下 protected void Grid View1_ PageIndex Changinglobject sender, Grid ViewPage EventArgs e) Grid View1.PageIndex= e. NewPagelndex;//当前页的索引 show abusers0;//重新绑定 Gridview的过程
◼ ⑤ GridView分页时触发PageIndexChanging事件,在 GridView1控件的“属性”窗口中单击“事件”按钮 切换 到事件列表,在事件列表中双击PageIndexChanging,添加 GridView1的PageIndexChanging事件程序。代码如下: ◼ protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) ◼ { ◼ GridView1.PageIndex = e.NewPageIndex; //当前页的索引 ◼ showAllUsers(); //重新绑定GridView的过程 ◼ }