DataGrid的多行提交_.Net教程
推薦:DataGrid表頭不動(dòng),表身動(dòng)上次和海東兄討論了這個(gè)問(wèn)題,但是他的表頭沒(méi)有線,所以用Div形式實(shí)現(xiàn)了,實(shí)現(xiàn)功能顯示表格,代碼如下(后臺(tái).cs文件只要綁定數(shù)據(jù)就可以了,字段和前臺(tái)綁定的一致就OK了,在此不加贅述): <
盡管ASP.NET DataGrid是眾所周知非常好的表格控件,不過(guò),提起DataGrid的編輯功能,我們卻不敢恭維了,就拿DataGrid的數(shù)據(jù)提交功能來(lái)說(shuō),的確存在很大的問(wèn)題:在DataGrid中,每編輯一行就要提交一行,即所謂“單行編輯、單行提交”,這樣的話,如果編輯的行數(shù)過(guò)多,不僅用戶操作繁瑣,還會(huì)造成對(duì)服務(wù)器的頻繁訪問(wèn),極大降低系統(tǒng)效率。
當(dāng)然了,有一種借尸還魂的解決方法,那就是把所要編輯的內(nèi)容轉(zhuǎn)到其他的頁(yè)中在TextBox中進(jìn)行編輯。不過(guò),仔細(xì)想想,這種方法難道不是自己在騙自己?jiǎn)幔有在Grid中我們編輯的時(shí)候總不能老是用Tab鍵來(lái)實(shí)現(xiàn)Grid(TextBox)之間的跳轉(zhuǎn)吧,如果響應(yīng)回車(chē)事件,那么需要程序員浪費(fèi)很大的精力來(lái)開(kāi)發(fā)。
如何解決上述問(wèn)題呢?下面我向大家推薦一個(gè)我正在使用的國(guó)產(chǎn)DataGrid:SmartGrid(天空軟件站可以下載:http://www.skycn.com/soft/23547.html ),這個(gè)控件我已經(jīng)用了好長(zhǎng)的時(shí)間了,現(xiàn)在來(lái)同大家探討一下SmartGrid的多行提交的方法:SmartGrid并沒(méi)有DataGrid中的那些按鈕列而是整個(gè)的表單只有一個(gè)提交按鈕,無(wú)論你更改了一行或者是多行都可以一次性的提交,下面來(lái)隨便看點(diǎn)例子:
實(shí)例:
上圖中是一個(gè)比較好的編輯的例子,例子顯示,你可以編輯多行也可以編輯一行,然后一起進(jìn)行提交。
代碼:
修改按鈕的代碼:
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//進(jìn)入編輯
this.DataGrid1.AllowAdd = true;//允許添加
this.DataGrid1.AllowDelete = true;//允許刪除
}
此段代碼是smartgrid的獨(dú)有的屬性你可以設(shè)添加刪除 編輯 的各種的功能
保存按鈕的代碼:
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;
}
這是整體的把數(shù)據(jù)提交到數(shù)據(jù)庫(kù)中,這種做法適合大數(shù)據(jù)量的情況
還有一種是數(shù)據(jù)逐行的提交到服務(wù)器
代碼:
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 是類(lèi)Execute是執(zhí)行存儲(chǔ)過(guò)程的函數(shù)parameters是存儲(chǔ)過(guò)程所需要的參數(shù)
EamPd.Execute("CreatLayer",parameters);
}
}
分享:在ASP.NET中使用AJAX的簡(jiǎn)單方法 介紹 本文介紹了使用AJAX和ASP.NET編寫(xiě)web應(yīng)用程序的一個(gè)簡(jiǎn)單方法。同時(shí),討論了使用AJAX的好處和不足。為了舉例說(shuō)明,本文給出了相應(yīng)的JavaScript代碼和用C#.NET編寫(xiě)的ASP.NET代碼。
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-DataGrid的多行提交。