国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

DataGrid的多行提交

2024-07-21 02:30:15
字體:
來源:轉載
供稿:網友


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

              }            

         }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖口县| 卫辉市| 郁南县| 云浮市| 阿勒泰市| 边坝县| 社旗县| 惠水县| 宣恩县| 九台市| 内乡县| 禄劝| 阳曲县| 新乡市| 修文县| 陇南市| 娄烦县| 冕宁县| 同江市| 塔河县| 尉氏县| 阿合奇县| 巴塘县| 定远县| 鲁甸县| 凤山市| 南昌县| 临沧市| 紫阳县| 和林格尔县| 安岳县| 贵州省| 竹溪县| 奎屯市| 金塔县| 通江县| 永昌县| 梨树县| 新化县| 当雄县| 浪卡子县|