.NET

尽管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);

          }            

     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值