ASP.net 企业级应用开发 信息工程系:罗明刚.

Slides:



Advertisements
Similar presentations
醫學美學之我見ー肉毒桿菌 班級:應日三乙 姓名:蔡雅卉 學號: 497E0076. 前言 現在的人,已經把 整型看做是微不足 道的事情了。即使 只是戴牙套、局部 雷射、割雙眼皮、 打美白針、肉毒桿 菌等等,都可以在 身體上做不同的改 變,而讓自己更滿 意自己的外表。
Advertisements

ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
一、老师申请题目,以下指导老 师操作。 1. 登录教务系统 web 端. 2. 点击 “ 毕业设计 ” 工具栏下拉菜单中的 “ 论文 _ 教师申请题目 ”
凱琪的包裹 這個故事是發生在第二次世界大戰後的歐洲。故事 藉由美國及荷蘭的兩位小女孩,因書信的往來而發
第21章 .NET报表设计 (时间:1.5次课,3学时).
苗栗縣大埔國小-蘇國樺、白書萍、梁詠琪 製作
讲故事训练 授课人:田轶.
第7章利用ADO.NET 进行数据访问.
说网络技术专业 江苏联合职业技术学院徐州财经分院 王 磊.
第十一課 菜園 6-11.
ASP.NET 網頁製作教本 – 從基本語法學起
校本选修课 第三专题 西藏问题 北京师大二附中 李文燕.
第八章 网络课程的设计与开发.
MVC Servlet与MVC设计模式.
网站如何定制建设???.
正修科技大學教學發展中心 教師教學觀摩與經驗分享 電子工程系 張法憲副教授.
《ASP.NET数据库网站设计教程(C#版)》
互联网时代班主任的挑战 万玮 2014年9月20日.
蘇軾詞的賞析
Visual Basic.NET 程序设计语言课程内容
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
AOP实践 演讲人:陈思荣.
柯奕宏(06) 王予亨(13) 郭秉逸(15) 楊雯凈(23) 顏佑瑩(32)
第十五章 传播学调查研究方法.
《ASP.NET数据库网站设计教程(C#版)》
自然與生活科技領域 認識太陽能 蘇紋琪、石明玉.
 全能的天才畫家- 李奧納多‧達文西 (西元1452年-1519年) 指導老師:袁淑芬老師 製作人:饒佩芯.
BLANK overview.
鄉村尋根-農具篇.
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
第6章 ADO.NET数据访问接口 6.
資料庫程式設計 VB資料庫設計簡介 週次:2 建國科技大學 資管系 饒瑞佶.
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第9章 事务.
操作数据库 C#程序设计课程组.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
第10章 網頁資料庫的顯示與維護 10-1 再談資料控制項 10-2 GridView控制項 10-3 DetailsView控制項
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
第5章 .NET框架类 5.
FormView 控件只能显示数据库中一行的数据,并且提供对数据的分页操作,FormView 控件可以以 一种不规则的外观来将数据呈现给用户。FormView 控件同样支持模板,以方便开发人员自定义 FormView 控件的 UI,FormView 控件支持的模板如下所示: ItemTemplate:用于在.
第4章 使用验证控件.
認識我的故鄉_台中市.
XML Web Service 开发 第1章 XML Web Service 第2章 XML Web Service 体系结构
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
第10章 網頁資料庫顯示與維護控制項 10-1 資料來源控制項 10-2 Repeater控制項 10-3 DataList控制項
P2P聊天工具.
大專院校美食網- 以新北市為例 商務科技管理專題 組 別: 第二組 專題成員: 方采薇 陳宜欣
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
补充:c#语言基础.
C# 基本語法、變數.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
精忠报国  演唱:屠洪纲 作词:陈涛 作曲:张宏光  狼烟起 江山北望  龙起卷 马长嘶 剑气如霜  心似黄河水茫茫  二十年 纵横间 谁能相抗  恨欲狂 长刀所向  多少手足忠魂埋骨它乡  何惜百死报家国  忍叹惜 更无语 血泪满眶  马蹄南去 人北望  人北望 草青黄 尘飞扬  我愿守土复开疆  堂堂中国要让四方来贺.
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
第二章 Java语法基础.
樂樂請假了 尊重的故事 資料來源:臺北縣國民小學品德教育手冊 故事來源:臺北縣國民小學品德教育手冊 網路小故事
订单汇总单功能详解 -芜花.
聽聽那冷雨---重點摘要 二愛 王煜榕.
“修身成材” 班级干部培训班 黑龙江大学党委学工部.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
呈現資料庫內的資料 於網頁上 DataReader物件.
憲政與民主 應化3A 邱泓明.
MenuStrip by Szeto CY Visual C# 2008.
古蹟知性之旅 我和新港奉天宮有個約 報告人:陳 映 竹 傅 湘 甯.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
電子表單 簡介 高雄市鳳山區新甲國小 陳信宏.
Presentation transcript:

ASP.net 企业级应用开发 信息工程系:罗明刚

第八章 数据绑定控件(二)

目标 使用DataGrid显示数据库中的数据 使用DataGrid的模板列 选择、更新和删除DataGrid 中的记录

DataGrid 控件概述 ASP.NET 中的 DataGrid 控件用于以表格格式显示数据 DataGrid 控件派生自 System.Web.UI.WebControls.DataGrid 类 要使用 DataGrid 控件,可在 Web 窗体上拖放控件或者双击工具箱中的该控件 工具箱的“Web 窗体”选项卡中的 DataGrid 控件如图所示 Web 窗体中的 DataGrid 控件如图所示

为 DataGrid 控件绑定数据 2-1 要在 DataGrid 控件中查看数据,必须将它绑定到一个数据源 步骤 要在 DataGrid 控件中查看数据,必须将它绑定到一个数据源 使用 DataSource 属性为 DataGrid 指定数据源,然后用 DataMember 属性指定要显示的数据源中的表 打开 VS.NET 集成开发环境 选择 ASP.NET 应用程序,然后为项目命名 拖放 DataAdapter 组件 将此网页重命名为 DataGridDemo.aspx 完成“数据适配器配置向导”中的步骤 指定 SQL 服务器,并选择列 将 DataGrid 控件添加到 Web 窗体 选择“生成数据集”,然后给定合适的名称 将 DataGrid 重命名为 dgDisplay 在 dgDisplay 的“属性”窗口中选择 DataSource 和 DataMember

为 DataGrid 控件绑定数据 2-2 DataGrid 输出结果 定义数据源后,应将以下两行代码添加到页面 此属性指定唯一标识表中给定行的列 // 填充数据集 SqlDataAdapter objSqlDataAdapter.Fill(dsPublishers,"Publishers"); // 填充数据网格 dgDisplay.DataBind(); DataGrid 的外观现在已更改,显示出表 publishers 中的列名 定义数据源后,应将以下两行代码添加到页面 的 Load 事件,然后填充 DataGrid DataGrid

设置页眉和页脚 输出结果 可使用“属性生成器”对话框设置 DataGrid 的页眉和页脚 使用“属性生成器”对话框指定各列的页脚文本和页眉文本 输出结果 属性生成器

使用数据格式表达式格式化 DataGrid 中显示的数据 设置格式表达式 使用数据格式表达式格式化 DataGrid 中显示的数据 右击 Datagrid,选择“属性生成器” 选择数据格式表达式中给出的列 指定格式表达式 dd/mm/yyyy 格式化数据 mm/dd/yyyy 格式表达式的作用 格式表达式设置为{0:D}

模板列 3-1 通过右击 DataGrid 并选择“编辑模板”,再选择“注册”列,可将 Checkbox 控件添加到“模板”列 “模板”列允许组合使用 HTML 控件和服务器控件设计列的自定义布局 通过右击 DataGrid 并选择“编辑模板”,再选择“注册”列,可将 Checkbox 控件添加到“模板”列 此时显示如图所示的模板编辑器 模板只针对特定的列,不能应用于自动生成的列中 第 1 列 第 2 列 模板编辑器

模板列 3-2 模板编辑器显示模板列的四个属性: HeaderTemplate 此属性获取或设定的模板用于定义模板列的页眉 DataGrid 现在于“注册”列的各行中显示一个复选框 HeaderTemplate 此属性获取或设定的模板用于定义模板列的页眉 ItemTemplate 此属性获取或设定的模板用于显示模板列中选定的项 EditItemTemplate 此属性获取或设定的模板用于编辑模板列中的数据项 FooterTemplate 此属性获取或设定的模板用于定义模板列的页脚 将一个复选框拖放到 ItemTemplate 框中

模板列 3-3 确定 publishers 是否注册的用户自定义函数 在复选框容器中调用 IsRegistered() public bool IsRegistered(string country) { if(country == "USA") return true; return false; } <asp:CheckBox id="CheckBox1" runat="server" Enabled = False Checked = '<%# IsRegistered(Convert.ToString(DataBinder .Eval(Container.DataItem, "country")))%>'> </asp:CheckBox> 将数据绑定到模板列

EditCommandColumn 使用数据库时需要执行三项基本任务,分别是: 选择数据 更新数据 删除数据

选择 DataGrid 中的行 要选择DataGrid中的记录,可使用“按钮列”中的“选择” 输出结果 要选择DataGrid中的记录,可使用“按钮列”中的“选择” 要确定用户选择的行,可使用 DataGrid 的 SelectedIndexChanged 事件 要为 dgDisplay 生成 SelectedIndexChanged 事件,可双击 dgDisplay 的“属性”窗口中显示的 SelectedIndexChanged 事件 private void dgDisplay_SelectedIndexChanged(object sender, System.EventArgs e) { lblMessage.Text = “您已选定 " + dgDisplay.SelectedItem.Cells[1].Text; } 在 DataGrid 中选择记录

更新数据 4-1 DataGrid 控件 EditItemIndex EditCommandColumn 编辑 更新 取消 呈现用于更新数据界面的方式之一是向用户提供一组数据,允许用户选择要更新的行 DataGrid 控件 EditItemIndex EditCommandColumn 编辑 更新 取消

在“属性生成器”对话框中,将“编辑、更新、取消”从“按钮列”添加到“选定的列”列表中 更新数据 4-2 在“属性生成器”对话框中,将“编辑、更新、取消”从“按钮列”添加到“选定的列”列表中 要为 dgDisplay 生成 EditCommand 事件处理程序,请双击 dgDisplay 的“属性”窗口中显示的 EditCommand 事件 public void dgDisplay_EditCommand(object source, System.Web. UI.WebControls.DataGridCommandEventArgs e) { dgDisplay.EditItemIndex = e.Item.ItemIndex; BindGrid(); }

更新数据 4-3 try { if(sqlConnection1.State == ConnectionState.Closed) sqlConnection1.Open(); sqlDataAdapter1.UpdateCommand.ExecuteNonQuery(); lblMessage.Text = "<b>Record Updated</b><br>" ; dgDisplay.EditItemIndex = -1; } sqlConnection1.Close(); catch(SqlException exc) if (exc.Number == 2627) lblMessage.Text = "错误:已存在相同主键的记录 "; else lblMessage.Text = exc.ToString() + "错误:无法更新记录,请确保字段都" + "已正确填写"; BindGrid(); 要为 dgDisplay 生成 UpdateCommand 事件处理程序,请双击 dgDisplay 的“属性”窗口中显示的 UpdateCommand 事件 public void dgDisplay_UpdateCommand(object source , System.Web.UI.WebControls.DataGridCommandEventArgs e) { sqlUpdateCommand1.Parameters["@Original_pub_id"].Value = dgDisplay.DataKeys[(int)e.Item.ItemIndex]; sqlUpdateCommand1.Parameters["@pub_id"].Value = ((TextBox)e.Item.Cells[0].Controls[0]).Text; sqlUpdateCommand1.Parameters["@pub_name"].Value= ((TextBox)e.Item.Cells[1].Controls[0]).Text; sqlUpdateCommand1.Parameters["@city"].Value = ((TextBox)e.Item.Cells[2].Controls[0]).Text; sqlUpdateCommand1.Parameters["@state"].Value = ((TextBox)e.Item.Cells[3].Controls[0]).Text; sqlUpdateCommand1.Parameters[“@country”].Value = ((TextBox)e.Item.Cells[4].Controls[0]).Text;

更新数据 4-4 显示编辑模式下的 DataGrid 控件 dgDisplay 要为 dgDisplay 生成 CancelCommand 事件处理程序,请双击 gDisplay 的“属性”窗口中显示的 CancelCommand 事件 public void dgDisplay_CancelCommand(object source, System.Web. UI.WebControls.DataGridCommandEventArgs e) { dgDisplay.EditItemIndex = -1; BindGrid(); } 这确保 DataGrid 中无记录处于编辑模式下 编辑模式下的 DataGrid

要为用户给出删除行的选项,可将名为“删除”的按钮列 删除数据 2-1 要为用户给出删除行的选项,可将名为“删除”的按钮列 添加到 DataGrid 控件

删除数据 2-2 要为 dgDisplay 生成 dgDisplay_DeleteCommand 事件处理程序,请双击 dgDisplay 的“属性”窗口中显示的 DeleteCommand 事件 输出结果 private void dgDisplay_DeleteCommand(object source, System.Web. UI.WebControls.DataGridCommandEventArgs e) { sqlDataAdapter1.DeleteCommand.Parameters["@Original_pub_id"].Value = dgDisplay.DataKeys[(int)e.Item.ItemIndex]; try if(sqlConnection1.State == ConnectionState.Closed) sqlConnection1.Open(); sqlDataAdapter1.DeleteCommand.ExecuteNonQuery(); 续.. lblMessage.Text = “<b>删除的记录</b><br>"; sqlConnection1.Close(); } catch (SqlException exc) { lblMessage.Text = exc.ToString() + “错误:不能删除记录"; BindGrid(); 删除 DataGrid 中的记录

通用的 ButtonColumn 下列显示的代码在确定在 DataGrid 上的执行命令是否为 Convert 之后将文本形式的供应商名称转换为大写 除了“选择”、“编辑、更新、取消”等执行不同任务的一些命令以外,也可以将一般按钮列添加到 DataGrid 单击 DataGrid 中第一行的“转换”链接后,输出结果显示如下: private void dgDisplay_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (((LinkButton)e.CommandSource).CommandName == "Convert") lblMessage.Text = e.Item.Cells[1].Text.ToUpper(); } 确定所单击按钮的命令名称,并执行相应的代码 添加按钮列

使用 DataGrid 分页可以按指定每页显示的记录数量,并显示导航按钮

在 DataGrid 中与分页相关联的事件是 PageIndexChanged,每当请求另一页时就会发生该事件 输出结果 private void dgDisplay_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { dgDisplay.CurrentPageIndex = e.NewPageIndex; BindGrid(); }

总结 在 .NET 中,Web 窗体 DataGrid 控件派生自类System.Web.UI.WebControls.DataGrid 使用 DataSource 和 DataMember 属性可将 DataGrid 绑定到数据源 TemplateColumn 允许指定在列中出现的控件。TemplateColumn 的页眉、页脚、项目和编辑项目等 4 项定义了模板列的内容和外观 可使用 Select、Edit、Update、Cancel 和 Delete 等 ButtonColumns 来选择、更新和删除 DataGrid 中的记录 对 DataGrid 进行分页使用户能按页显示指定数量的记录 DataGrid 的“属性生成器”对话框定义了用于自定义 DataGrid 的页眉、页脚、列、分页及各种其他设置