尽管ASP.NET DataGrid是众所周知非常好的表格控件,不过,提起DataGrid的编辑功能,我们却不敢恭维了,就拿DataGrid的数据提交功能来说,的确存在很大的问题:在DataGrid中,每编辑一行就要提交一行,即所谓“单行编辑、单行提交”,这样的话,如果编辑的行数过多,不仅用户操作繁琐,还会造成对服务器的频繁访问,极大降低系统效率。

当然了,有一种借尸还魂的解决方法,那就是把所要编辑的内容转到其他的页中在TextBox中进行编辑。不过,仔细想想,这种方法难道不是自己在骗自己吗,还有在Grid中我们编辑的时候总不能老是用Tab键来实现Grid(TextBox)之间的跳转吧,如果响应回车事件,那么需要程序员浪费很大的精力来开发。

如何解决上述问题呢?下面我向大家推荐一个我正在使用的国产DataGrid:SmartGrid(天空软件站可以下载:http://www.skycn.com/soft/23547.html ),这个控件我已经用了好长的时间了,现在来同大家探讨一下SmartGrid的多行提交的方法:SmartGrid并没有DataGrid中的那些按钮列而是整个的表单只有一个提交按钮,无论你更改了一行或者是多行都可以一次性的提交,下面来随便看点例子:

实例:

上图中是一个比较好的编辑的例子,例子显示,你可以编辑多行也可以编辑一行,然后一起进行提交。

代码:

修改按钮的代码:

private void btonSave_Click(object sender, System.EventArgs e)

{

this.DataGrid1.ReadOnly = false;//进入编辑

this.DataGrid1.AllowAdd = true;//允许添加

this.DataGrid1.AllowDelete = true;//允许删除

}

此段代码是smartgrid的独有的属性你可以设添加删除 编辑 的各种的功能

保存按钮的代码:
private void Button2_Click(object sender, System.EventArgs e)

{

DataTable t = (DataTable)this.SmartGrid1.DataSource;

this.sqlDataAdapter1.Update(t);

t.Clear();

this.sqlDataAdapter1.Fill(t);

this.SmartGrid1.DataSource = t;

}

这是整体的把数据提交到数据库中,这种做法适合大数据量的情况

还有一种是数据逐行的提交到服务器

代码:

private void btonSave_Click(object sender, System.EventArgs e)

{

DataTable tb=(DataTable)this.SmartGrid1.DataSource;

SqlParameter[] parameters=new SqlParameter[5];

foreach(DataRow dr in tb.Rows)

{

parameters[0]=new SqlParameter("@customerId",""+dr[1]+"");

parameters[1]=new SqlParameter("@companyName",""+dr[0]+"");

parameters[2]=new SqlParameter("@contactName",""+dr[2]+"");

parameters[3]=new SqlParameter("@contactTitle",""+dr[3]+"");

parameters[4]=new SqlParameter("@address",""+dr[4]+"");

//EamPd 是类Execute是执行存储过程的函数parameters是存储过程所需要的参数

EamPd.Execute("CreatLayer",parameters);

}

}

转载于:https://www.cnblogs.com/jhobo/archive/2006/08/18/480660.html

DataGrid的多行提交相关推荐

  1. Flink 命令行提交参数

    Flink 命令行提交参数: 1 参数必选 : -n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量) 2 参数可选 : -D <arg ...

  2. oracle 查看 编译错误,Oracle-已编译但有错误,命令行提交包不显示结果

    开发环境名称 版本 操作系统 Windows 10 X64 Oracle win64_11gR2_database PLSQL Developer 11.0.4.1788(64 bit)01.1793 ...

  3. linux提交abaqus作业,命令行提交 Abaqus 任务

    Abaqus 早期好像是只有通过命令行提交任务的.即使到了现在,很多人还是喜欢直接通过命令行操作.而且有时候需要用命令行提交 inp 文件进行计算还可能是因为少数 keywords 不为 Abaqus ...

  4. Git 命令行提交代码详细操作

    Git 命令行提交代码操作(安装git后,鼠标右键打开Git Bash) 1.查看本地git绑定的用户名和邮箱: git config user.name git config user.email ...

  5. [转]easyui datagrid 批量编辑和提交

    web前台主要代码: <script type="text/javascript">$(function() {var $dg = $("#dg") ...

  6. 【转帖】如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值

    功能需求 1,  单击 checkbox 返回当前行值 2,  外部按钮获取所有选择行的值 实现说明 参见主要代码,代码为自说明式. 原文地址:http://www.cnblogs.com/Jingl ...

  7. Git利用命令行提交代码完整步骤

    打开git命令行 鼠标右键-->git bash here 首先登录: git config user.name "你的名字" git config user.email & ...

  8. easyUI 展开DataGrid里面的行显示详细信息

    http://blog.csdn.net/yanghongchang_/article/details/7854156原著 datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图 ...

  9. [C#]WinFrom中的DataGrid单击选择行

    在WebFrom中,做单击选择行很简单,但在WinFrom中就有点烦了. 记得WebFrom中在javascript里写得那么两条语句就OK了.那么在WinFrom中呢?呵,去MSDN里搜了一把.得到 ...

最新文章

  1. PL/SQL学习笔记-过程
  2. Metasploit设置HttpTrace参数技巧
  3. mysql导入表格,txt操作(以及常见问题解决方法)
  4. 【bzoj5037】[Jsoi2014]电信网络 最大权闭合图
  5. IQueryable和IEnumerable,IList的区别
  6. lsb_release: command not found 解决
  7. 学习使用常用的windbg命令(u、dt、ln、x)
  8. 根据文件路径打开文件所在文件夹,并且默认选中该文件
  9. git sync fatal: Authentication failed for https://github.com/ did not exit cleanly (exit code 128)
  10. 完整的CJK Unicode范围(5.0版)
  11. 百度离线地图——瓦片地图下载
  12. 基于STM32F030实现RFID射频识别
  13. 1194:移动路线(简单题日常2)
  14. Latex通过bib文件转出bbl文件
  15. 一名小程序员的2021年度 个人总结
  16. Python玫瑰花绘制
  17. D. Little Girl and Maximum XOR(贪心)
  18. 为什么 MongoDB 索引选择B-树,而 Mysql 选择B+树(精干总结)
  19. 小说作者推荐:休屠城合集
  20. 天津少儿编程培训,日本小学生正在把你甩在身后 ​

热门文章

  1. VS2010与Windows7共舞:对库进行编程
  2. Hadoop集群配置搭建
  3. Html.RenderPartial使用三个参数
  4. [C#.Net]判断文件是否被占用的两种方法
  5. WebSocket实践
  6. Linux操纵零碎下设置JSP开发环境的方式
  7. javascript设计模式研究学习-设计模式类别
  8. PocketSphinx语音识别系统声学模型的训练与使用
  9. OpenAL跨平台音效API的安装与移植
  10. 计算机通识/14:算法常识/算法常识-01