1、数据绑定控件 (一),第七章,目标,理解数据绑定 使用 DataList 控件 使用数据视图排序和筛选 在ASP.NET 中使用ADO.NET的事务处理,数据绑定简介 2-1,控件,FORM,数据,检索到的数据,数据,输出结果,欢迎 “ ”,数据绑定是将数据链接到显示该数据的控件的过程,数据绑定简介 2-2,用于绑定控件的表达式置于 标记之间,数据绑定,简单属性,表达式,方法的结果,数据源,简单属性绑定,“ ImageUrl=“red.bmp“ “ runat=“server“ “ ImageUrl=“red.bmp“ “ runat=“server“ “ ImageUrl=“red.bmp“
2、 “ runat=“server“,代码视图,/定义成员变量 protected static int vote1 = 0; protected static int vote2 = 0; protected static int vote3 = 0; private void btnVote1_Click(object sender, System.EventArgs e) vote1 += 1;this.DataBind(); private void btnVote2_Click(object sender, System.EventArgs e) vote2 += 1;this.Dat
3、aBind(); private void btnVote3_Click(object sender, System.EventArgs e) vote3 += 1;this.DataBind(); ,HTML视图,运行结果,表达式绑定,“ ImageUrl=“red.bmp“ “ runat=“server“ “ ImageUrl=“red.bmp“ “ runat=“server“ “ ImageUrl=“red.bmp“ “ runat=“server“,代码视图,HTML视图,运行结果,/定义成员变量 protected static int vote1 = 0; protected
4、static int vote2 = 0; protected static int vote3 = 0; private void btnVote1_Click(object sender, System.EventArgs e) vote1 += 1;this.DataBind(); private void btnVote2_Click(object sender, System.EventArgs e) vote2 += 1;this.DataBind(); private void btnVote3_Click(object sender, System.EventArgs e) v
5、ote3 += 1;this.DataBind(); ,方法的结果绑定,protected string GetVotePercent(int vote) int sumVote = vote1 + vote2 + vote3;if (sumVote = 0)return “0%“;elsedecimal percent = 100 * (Convert.ToDecimal(vote) /Convert.ToDecimal(sumVote);return percent.ToString(“n2“) + “%“;,建立一个新方法,“ ImageUrl=“red.bmp“ “ runat=“se
6、rver“ “ ImageUrl=“red.bmp“ “ runat=“server“ “ ImageUrl=“red.bmp“ “ runat=“server“,调用方法的结果绑定,运行结果,使用 DataList 控件显示数据 3-1,使用 Datalist 控件可以指定数据流,输出结果,WELCOME,W E L C O M E,水平方式,垂直方式,Datalist 控件,项模板,交替项 模板,页脚 模板,页眉 模板,编辑项 模板,选择项 模板,分隔符 模板,也可以为 DataList 控件设置要显示的数据列数和行数,使用 DataList 控件显示数据 3-2,示例:DatalistD
7、emo.aspx,private void Page_Load(object sender, System.EventArgs e) Response.Write(“带有交替列的数据列表”+ “);if(!IsPostBack) DataTable mydt = new DataTable();DataRow mydr; mydt.Columns.Add(new DataColumn(“Numbers“, typeof(Int32);mydt.Columns.Add(new DataColumn(“Squares“, typeof(Int32);mydt.Columns.Add(new Dat
8、aColumn(“Cubes“, typeof(Int32);续,for (int i=0;i30;i+)mydr = mydt.NewRow();mydr0 = i;mydr1 = i * i;mydr2 = i * i * i;mydt.Rows.Add (mydr);dlMyList.DataSource = mydt;dlMyList.DataBind (); ,为 DataList 控件指定数据源,将数据绑定到 DataList,使用 DataList 控件显示数据 3-3,示例的 HTML 视图,输出结果,Eval 方法,Eval 方法用于在运行时计算 数据绑定表达式,并按照要求格
9、式化输出结果,此方法有三个参数,对为其表达式求值的对象的引用,格式字符串,数据表中的数据列名称,用于显示指定格式的值,命名容器,数据字段名,使用 DataView 控件 3-1,DataView 用于呈现 DataTable 中的数据的自定义视图,NAME,S No,DESIG,AGE,1.2.3.4.,ABCDEFLMNXYG,27605733,PLGMMDTL,职员数据,NAME,S No,DESIG,AGE,2.3.,DEFLMN,6057,GMMD,Data View,Age 55,使用 DataView 控件 3-2,employee 表的 DataView 控件仅检索年龄大于 55
10、 的职员的记录,mydv = new DataView (ds.Tables “employee“); mydv.RowFilter = “age 55“;,Sort 属性用于以递增或递减顺序为行排序,mydv.Sort = “fname ASC“;,递增排列,使用 DataView 控件 3-3,DataView 控件可以限制 employee 表中显示的行,private void Page_Load(object sender, System.EventArgs e) Response.Write(“数据视图 “);SqlConnection objSqlConnection = new
11、 SqlConnection(“server=vijayk;uid=sa;pwd=playware;database=pubs“);SqlDataAdapter objSqlAdapter = new SqlDataAdapter(“select * from employee where job_id = 5“, objSqlConnection);DataSet objDataSet = new DataSet();objSqlAdapter.Fill(objDataSet, “employee“); DataView objDataView = new DataView (objData
12、Set.Tables “employee“);objDataView.RowFilter = “job_lvl 180“;objDataView.Sort = “fname ASC“;dgMyGrid.DataSource=objDataView;dgMyGrid.DataBind(); ,输出结果,总结 2-1,数据绑定是将从数据库中检索到的数据链接到将显示这些数据的控件的过程 可对多种类型的数据执行数据绑定,例如: 表达式 数据库数据 Databinder.Eval 方法 DataGrid、DataList 和 Repeater 等控件可用于连接数据库并实现对数据库数据的进行数据绑定 Databinder.Eval 方法用于计算运行时的数据绑定表达式,并按照浏览器显示的要求来格式化输出结果,总结 2-2,DataList 控件可用于显示数据,而且支持指定数据流 模板用于将数据显示在浏览器和 DataList 控件中 DataView 可用于自定义 DataTable 中数据的显示。DataView 中的数据可进行筛选、搜索和排列 ADO.NET 级的事务处理可以通过 SqlTransaction 类的方法来应用。可通过使用事务处理指令来指示页面上的事务处理支持级,