2023.7电脑编程技巧与维护1概述ASP.NET是由Microsoft创建的开放源代码Web框架,帮助使用.NET生成现代Web应用和服务[1]。其自带的GrieView控件用于在表中显示数据源的值,其中每列表示一个字段,每行表示一条记录。作为一个ASP.NET的原生控件,它自带的设计面板能为初学者提供方便的数据绑定功能。简单的拖动和设置可以轻松地编写简单的Web应用程序,很容易给初学者带来良好的学习体验,但也有其不足之处。(1)由于GrieView自带的样式老套、有限,其在前端的表现能力很难让用户满意。在前端UI已经很丰富、生动的当下,其前端难以简单套用成熟UI的样式。(2)单元格编辑过程中如果要使用组合框等控件,则每行都要使用模板字段将组合框所定义的下拉绑定数据带入浏览器,如果表格行数和列表选取内容较多,则后端将向前端输出较多的重复数据,并且只能使用简单的数据库值(显示值)类型的下拉组合框。(3)每次只能编辑、提交一条数据,其选择和编辑按钮不能从表格中分离,需每行都带出,这样的编辑体验很难让用户满意。并且其只读模板与编辑模板分离,在后端的设计过程中,开发人员很难控制前端的样式。(4)对于非SqlDataSource或ObjectlDataSource数据源(或未定义增、删、改方法的SqlDataSource或Ob-jectlDataSource数据源),不能根据表格列属性自动生成增、删、改的SQL语句,不能实现数据的自动保存。2优化方案设计方案针对以上不足,秉承GrieView原生控件自动生成列、自动进行数据保存的优势,以EasyUI前端UI为例,全新设计EasyGrid服务器控件,设计思路如图1所示。(1)控件继承于CompositeDataBoundControl,之所于没有直接继承GrieView,是因为前端只需要输出表头字段信息,由EasyUI渲染,具体的数据由easyui-data-grid参数url以Ajax的方式从服务器获取。(2)核心字段Columns类型为DataControlFieldCol-lection,这是GrieView中Columns的原生类型,之所于选择它,一方面可以大幅减少代码量;另一方面可以与GrieView中Columns的列匹配,方便原有表格升级。(3)核心字段DataKeyNames用于记录数据表的主键信息,自动保存数据时能根据主键信息执行this.Get-Data().Insert()、this.GetData().Delete()、this.GetData().Update()方法。(4)核心字段Parameters的类型为ParameterCollec-tion,配合DataKeyNames属性,自定义可更新字段,用于动态生成增、删、改的SQL语句,实现灵活多变的自动数据存储。(5)核心设计器EasyGridDesigner继承自DataB...