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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

在DataGrid控件中編輯數(shù)據(jù)項(xiàng)

2019-11-18 16:43:18
字體:
供稿:網(wǎng)友

要想在DataGrid控件中編輯數(shù)據(jù),請使用"按鈕列"中的"編輯、更新、取消"列,這些都可以在DataGrid控件的屬性生成器中設(shè)置

當(dāng)為DataGrid控件(以控件名為dg1為例)中加入了"編輯、更新、取消"列后,在頁面的dg1控件中會多出一列,該列的每一項(xiàng)都是文本為"編輯"的LinkButton/Button。

如果單擊了某一行的"編輯"按鈕,則該行處于編輯模式,"編輯"按鈕被替換為"更新"和"取消"按鈕,該行中所有其它的非只讀的數(shù)據(jù)幫定列都會變成TextBox控件格式,以便用戶來編輯修改。
當(dāng)用戶修改了非只讀的數(shù)據(jù)幫定列的數(shù)據(jù)(在TextBox控件中),單擊"更新"按鈕,將新值保存(一般是保存到數(shù)據(jù)庫中),單擊"取消"按鈕,該行退出編輯模式。

為了達(dá)到單擊"編輯"按鈕,就轉(zhuǎn)換為行編輯模式的效果,必須編寫dg1的EditCommand事件處理方法
為了達(dá)到單擊"更新"按鈕,就保存新值的效果,必須編寫dg1的UpdateCommand事件處理方法
為了達(dá)到單擊"取消"按鈕,就退出行編輯模式,必須編輯dg1的CancelCommand事件處理方法

1) dg1.EditCommand事件處理方法-進(jìn)入行的編輯模式
------------------------------------------------------
PRivate void dg1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  dg1.EditItemIndex = e.Item.ItemIndex; //設(shè)置要編輯的項(xiàng)的索引
  binddg1();  //為dg1綁定數(shù)據(jù)的方法。設(shè)置要編輯的項(xiàng)后,要求重新綁定dg1
}
---------------------------------------------------------

2) dg1.CancelCommand事件處理方法-退出行的編輯模式
---------------------------------------------------------
private void dg_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  dg1.EditItemIndex = e.Item.ItemIndex; //編輯的項(xiàng)的索引為-1,就是不編輯任何項(xiàng)
  binddg1();  //重設(shè)EditItemIndex后,要求重新綁定dg1
}
---------------------------------------------------------

3) dg1.UpdateCommand事件處理方法-保存更新了的值
要保存更新了的值,首先要重頁面中獲取這些新值。在事件處理方法中,主要要實(shí)現(xiàn)三個(gè)功能:
獲取更新了的值、更新這些值、退出行更新模式。

一般,DataGrid控件中的顯示的數(shù)據(jù)都是從數(shù)據(jù)庫表中取得的,所以更新了的值也要保存到數(shù)據(jù)庫中,可以用一條update Sql語句或存儲過程來執(zhí)行更新。

要從頁面中獲取處于編輯模式的行中各列的值,需要一些技巧。以綁定列為例:
獲取只讀綁定列的值:  e.Item.Cells[列索引].Text  //只讀幫定列處于非編輯狀態(tài)
獲取非只讀綁定列的值:((TextBox)(e.Item.Cells[列索引].Controls[0])).Text //處于編輯狀態(tài)

只讀幫定列通常是表中的主鍵列,其列值要用在update語句的where子句中,一般不更新它們

代碼示例:
----------------------------------------------------------
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  //只讀綁定列,處于非編輯狀態(tài)
  string customerid = e.Item.Cells[1].Text; 
  //非只讀綁定列,處于編輯狀態(tài)
  string companyname = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
  string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;

  String strSql = "update customers set companyname = '" + companyname +
 "',city = '" + city + "' where customerid = '" + customerid + "'";
  executeSql(strSql);  //執(zhí)行update語句,進(jìn)行更新

  DataGrid1.EditItemIndex = -1;     //退出行的編輯模式
  binddg1();
}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 紫金县| 中阳县| 酉阳| 钦州市| 仁怀市| 都安| 光泽县| 新绛县| 米脂县| 泰安市| 拜城县| 乌拉特前旗| 喀喇| 普兰店市| 唐海县| 吉木萨尔县| 双城市| 象州县| 观塘区| 岳阳县| 磐石市| 普洱| 凤阳县| 海淀区| 宜昌市| 通榆县| 霸州市| 南安市| 延长县| 永清县| 阿尔山市| 班戈县| 四子王旗| 台湾省| 化德县| 册亨县| 邹平县| 宁河县| 柳江县| 盐边县| 城市|