DataGrid的多行提交
尽管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的多行提交相关推荐
- Flink 命令行提交参数
Flink 命令行提交参数: 1 参数必选 : -n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量) 2 参数可选 : -D <arg ...
- oracle 查看 编译错误,Oracle-已编译但有错误,命令行提交包不显示结果
开发环境名称 版本 操作系统 Windows 10 X64 Oracle win64_11gR2_database PLSQL Developer 11.0.4.1788(64 bit)01.1793 ...
- linux提交abaqus作业,命令行提交 Abaqus 任务
Abaqus 早期好像是只有通过命令行提交任务的.即使到了现在,很多人还是喜欢直接通过命令行操作.而且有时候需要用命令行提交 inp 文件进行计算还可能是因为少数 keywords 不为 Abaqus ...
- Git 命令行提交代码详细操作
Git 命令行提交代码操作(安装git后,鼠标右键打开Git Bash) 1.查看本地git绑定的用户名和邮箱: git config user.name git config user.email ...
- [转]easyui datagrid 批量编辑和提交
web前台主要代码: <script type="text/javascript">$(function() {var $dg = $("#dg") ...
- 【转帖】如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
功能需求 1, 单击 checkbox 返回当前行值 2, 外部按钮获取所有选择行的值 实现说明 参见主要代码,代码为自说明式. 原文地址:http://www.cnblogs.com/Jingl ...
- Git利用命令行提交代码完整步骤
打开git命令行 鼠标右键-->git bash here 首先登录: git config user.name "你的名字" git config user.email & ...
- easyUI 展开DataGrid里面的行显示详细信息
http://blog.csdn.net/yanghongchang_/article/details/7854156原著 datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图 ...
- [C#]WinFrom中的DataGrid单击选择行
在WebFrom中,做单击选择行很简单,但在WinFrom中就有点烦了. 记得WebFrom中在javascript里写得那么两条语句就OK了.那么在WinFrom中呢?呵,去MSDN里搜了一把.得到 ...
最新文章
- PL/SQL学习笔记-过程
- Metasploit设置HttpTrace参数技巧
- mysql导入表格,txt操作(以及常见问题解决方法)
- 【bzoj5037】[Jsoi2014]电信网络 最大权闭合图
- IQueryable和IEnumerable,IList的区别
- lsb_release: command not found 解决
- 学习使用常用的windbg命令(u、dt、ln、x)
- 根据文件路径打开文件所在文件夹,并且默认选中该文件
- git sync fatal: Authentication failed for https://github.com/ did not exit cleanly (exit code 128)
- 完整的CJK Unicode范围(5.0版)
- 百度离线地图——瓦片地图下载
- 基于STM32F030实现RFID射频识别
- 1194:移动路线(简单题日常2)
- Latex通过bib文件转出bbl文件
- 一名小程序员的2021年度 个人总结
- Python玫瑰花绘制
- D. Little Girl and Maximum XOR(贪心)
- 为什么 MongoDB 索引选择B-树,而 Mysql 选择B+树(精干总结)
- 小说作者推荐:休屠城合集
- 天津少儿编程培训,日本小学生正在把你甩在身后 ​