您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > GridView1 删除、修改(字段类型全而且用GridView集成处理)
张家口教育学院教育技术中心第1页共21页删除、修改记录(字段类型全、GridView集成处理、双向排序、翻页、绑定列)2010.10.30学习内容:TemplatedField模板列技术、使用绑定列技术、鼠标所在行颜色提示、绑定列中使用下拉列表框、设置字段的ControlStyle属性运行态张家口教育学院教育技术中心第2页共21页1.在VS2008中建立Web项目。2.在Windows环境下将数据库jyxystu.mdf(命名含义为教育学院学生)和jyxystu.ldf拷贝到项目的App_Data目录下,并在VS中添加的项目中。张家口教育学院教育技术中心第3页共21页3.在SQLServer2000中附加数据库jyxystu.mdf。4.在数据库中建立一个表:tb_zg(命名含义为职工表,以tb开头意思是本对象是一个表),表结构如下:5.录入若干条记录(为了看出效果,记录数至少20条)6.修改web.config文件,(1)删除/configSections下方的appSettings/(2)在/configSections位置下增加:字段名数据类型长度主键否描述zgbhvarchar4是职工编号xmvarchar50职工姓名xbvarchar2性别csnydatetime8出生年月glint4职工工龄gzfloat8职工工资张家口教育学院教育技术中心第4页共21页appSettingsaddkey=ConnStrvalue=Server=localhost;uid=sa;pwd=;database=jyxystu/add/appSettings7.在项目中添加Web窗体mygridview.aspx(文件名含义为按类查询)8.布局控件如下:一个GridView,在GridView下方有两个label,准备显示第x页共y页。ID属性分别是Label1和Label2。GridView1自动套用格式为雪松。AutoGenerateColumns=FalseAllowSorting=TrueAllowPaging=TruePageSize=10因为要采用分页技术所以需要再设置PagerSettings属性FirstPageText=首页LastPageText=尾页NextPageText=下一页PreviousPageText=上一页Mode=NextPreviousFirstLast把GridView中的FontSize设为small。GridView的DataKeyNames属性为zgbhGridView1编辑列界面如下(通过“添加列”),如图所示:张家口教育学院教育技术中心第5页共21页张家口教育学院教育技术中心第6页共21页其中在“选定的字段”下各字段的属性设置如下:可用字段类型选定的字段DataField属性HeaderText属性SortExpression属性readonly属性ControlStyleWidth属性DataFormatStringBoundField职工编号zgbh职工编号zgbhTrueBoundField姓名xm姓名80pxTemplateField性别性别40pxBoundField出生年月csny出生年月csny120px{0:yyyy-MM-dd}或{0:d}BoundField工龄gl工龄gl30pxBoundField工资gz工资gz60px{0:c}会显示货币符号CommandField编辑编辑TemplateField删除删除备注:1.ControlStyleWidth属性是解决GridView进入编辑状态后表格列宽紊乱的问题,对文本框进行强制宽度设置。2.DataFormatString属性是解决数据显示问题的,在此例中引入该属性是为了控制日期型数据显示为2010-10-11格式的。此外:编辑按钮还需设置属性:ShowEditButton=True删除按钮还需设置属性:ButtonType=ButtonCommandName=deleteText=删除补充知识DataFormatString属性常见取值:张家口教育学院教育技术中心第7页共21页{0:c}货币格式{0:d}短日期2010-10-12{0:D}长日期2010年10月12日{0:000.0}四舍五入小数点保留第几位有效数字;{0:N2}小数点保留2位有效数字;{0:N2}%小数点保留2位有效数字加百分号;{0:yy-MM-dd}例如07-3-25;;{0:yyyy-MM-dd}例如2007-3-259.切换到源视图,补充性别绑定列的HTML代码。asp:TemplateFieldHeaderText=性别EditItemTemplateasp:DropDownListID=DropDownList2runat=serverselectedvalue='%#bind(xb)%'asp:ListItem男/asp:ListItemasp:ListItem女/asp:ListItem/asp:DropDownList/EditItemTemplateItemTemplateasp:LabelID=Label1runat=serverText='%#Bind(xb)%'/asp:Label/ItemTemplateControlStyleWidth=40px//asp:TemplateField说明:(1)希望网页运行后,当GridView进入编辑状态后,在性别列处显示的是下拉列表框,在下拉列表框中有男、女两个选项供选择,要比提供文本框输入男和女,显得界面更友好,如果单纯用文本框输入,就不用搞这么复杂了,直接用一个BoundField列就可以了。(2)除手工在源视图下填写代码外,另外一种正规方法是在GridView上点智能标记,调用快捷菜单“编辑模板”,然后选Column[2]-性别,进入模板列编辑状态,在此图中可设插入控件,编辑完后点“结束模板编辑”按钮返回,如果同学们采用这种方法,那么在设计完后,对照一下HTML代码,看有无缺漏。另外ItemTemplate是浏览状态下的控件显示。EditItemTemplate是编辑状态下的控件显示。张家口教育学院教育技术中心第8页共21页(3)使用Bind方法可将修改后的数据写回,通常在数据绑定控件的EditItemTemplate或InsertItemTemplate模板中使用Bind方法,并将字段名称传递给它,以显示和编辑字段数据,双向绑定语法格式如下:'%#Bind(字段名)%'张家口教育学院教育技术中心第9页共21页张家口教育学院教育技术中心第10页共21页张家口教育学院教育技术中心第11页共21页张家口教育学院教育技术中心第12页共21页(4)在编辑模板状态下,在ItemTemplate模板中为“删除”按钮设置以下这些属性。关键是CommandName=deleteOnClientClick=returnconfirm(您确定要删除该条记录吗?);张家口教育学院教育技术中心第13页共21页10.导入命名空间:usingSystem.Data.SqlClient;//cyd2010.10导入命名空间,此例就不用类来处理了11.在Page_Load函数上方写下数据库连接字符串//cyd2010.10声明连接字符串,所取值来自于Web.config文件中的键stringMyConnStr=System.Configuration.ConfigurationSettings.AppSettings[ConnStr];12.Page_Load函数如下:protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack)bindgrid();//cyd2010.10首次运行,表格绑定数据源}13.用户自定义函数bindgrid()函数如下:voidbindgrid(){DataSetds=newDataSet();using(SqlConnectionsqlconn=newSqlConnection(MyConnStr)){SqlDataAdaptersqld=newSqlDataAdapter(selectzgbh,xm,xb,csny,gl,gzfromtb_zg,sqlconn);sqld.Fill(ds,tb_zg);}//cyd2010.10判断是否已经进行排序,如果是则按照ViewState中存储的信息生成排序后的DataView对象if(ViewState[SortDirection]==null)GridView1.DataSource=ds.Tables[tb_zg].DefaultView;else张家口教育学院教育技术中心第14页共21页{DataViewSortedDV=newDataView(ds.Tables[tb_zg]);SortedDV.Sort=ViewState[SortExpression].ToString()++ViewState[SortDirection].ToString();GridView1.DataSource=SortedDV;}GridView1.DataBind();}14.GridView1的Sorting事件代码如下:protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse){if(ViewState[SortDirection]==null)ViewState[SortDirection]=DESC;if(ViewState[SortDirection].ToString()==ASC)ViewState[SortDirection]=DESC;elseViewState[SortDirection]=ASC;ViewState[SortExpression]=e.SortExpression;this.bindgrid();}15.GridView1的RowDeleting事件代码如下:protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){张家口教育学院教育技术中心第15页共21页//cyd2010.10设置数据库连接SqlConnectionsqlconn=newSqlConnection(MyConnStr);sqlconn.Open();//cyd2010.10删除记录Stringsql=deletefromtb_zgwherezgbh='+GridView1.DataKeys[e.RowIndex].Value.ToString()+';SqlCommandComm=newSqlCommand(sql,sqlconn);Comm.ExecuteNonQuery();sqlconn.Close();sqlconn=null;Comm=null;GridView1.EditIndex=-1;bindgrid();}16.GridView1的RowEditing事件代码如下:protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse){GridView1.EditIndex=e.NewEditIndex;bindgrid();}17.GridView1的RowCancelingEdit事件代码如下:张家口教育学院教育技术中心第16页共21页protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse){GridView1.EditIndex=-1;bindgrid();}18.GridVi
本文标题:GridView1 删除、修改(字段类型全而且用GridView集成处理)
链接地址:https://www.777doc.com/doc-4897928 .html