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

首頁 > 開發 > 綜合 > 正文

關于DataGrid Web控件的熱門問題__連載之五

2024-07-21 02:22:58
字體:
來源:轉載
供稿:網友
菜鳥學堂:
  
使用datagrid控件向數據源增加一條記錄 
       datagrid控件允許用戶查看和編輯記錄,但內部不包含添加新記錄的便利,但是,可以采取不同的方法來添加這個功能。下面的方法包含了如下步驟: 
l         向datagrid的數據源(dataset or database)增加一個新的、空的記錄,如果需要的話,還要為記錄指定一個id并為每個不允許為空的列存入一個占位的值。 
l         重綁定datagrid到數據源。 
l         將datagrid轉變為編輯模式,你需要能夠知道新記錄在datagrid中顯示的位置。 
l         使用普通的方式更新記錄——用戶單擊“update”,然后將用戶提供的值作為新的記錄的值寫回到數據源。 
下面是添加新記錄、綁定datagrid,以及將其轉化為編輯模式的例子。該例中的數據 
源是一個dataset(dsbook1),它包含了一個books表。 
private void btnaddrow_click(object sender, system.eventargs e) 

   datarow dr = this.dsbooks1.books.newrow(); 
   dr["title"] = "(new)"; 
   dr["instock"] = true; 
   this.dsbooks1.books.rows.insertat(dr, 0); 
   session["dsbooks"] = dsbooks1; 
   datagrid1.edititemindex = 0; 
   datagrid1.databind(); 

需要注意的一些問題: 
l         當用戶點擊也面中的某個“add”按鈕時,這些代碼就被執行。 
l         新行通過newrow()方法生成,然后通過insertat()方法插入到dataset中的表,該方法允許將該行設定到一個具體的預先確定的位置——在這個例子中,它是表中的第一條記錄(也就是rows集合中的第一行)。換種方式,你也可以通過設置行的數目值將其插入表尾。重要的是,要確切知道該行在表中的位置。 
l         由于現在你已經知道該行在表中的第一個位置上,你可以通過將datagrid的編輯項索引設為0,從而將新行設置為編輯模式(如果你在表中的其他位置創建了新行,你可以將編輯項索引設為那個位置的值)。 
l         現在在數據集中已經有了一條新的記錄(但它還不是在數據庫中),如果你不想從數據庫重新填充datagrid從而丟失新的記錄,就需要在提交—回傳的過程中保留一個該數據集的副本。例子中通過代碼將其保存在session中,當頁加載時,需要重新從session中加載數據集。下例是page_load()事件句柄的一種可能形式: 
private void page_load(object sender, system.eventargs e) 

   if(this.ispostback) 
   { 
      dsbooks1 = (dsbooks) session["dsbooks"]; 
   } 
   else 
   { 
      this.sqldataadapter1.fill(this.dsbooks1); 
      session["dsbooks"] = dsbooks1; 
      this.datagrid1.databind(); 
   } 
}
(unfinished) 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大名县| 金秀| 保靖县| 建水县| 乡宁县| 绵竹市| 沙河市| 宝清县| 曲靖市| 乌海市| 秦皇岛市| 呼玛县| 宜川县| 忻州市| 崇文区| 霍城县| 彰化市| 榆林市| 天祝| 濉溪县| 彰化县| 三门县| 榆中县| 天祝| 中超| 南京市| 和顺县| 怀远县| 当阳市| 吴川市| 三明市| 五寨县| 离岛区| 巴彦县| 吉林市| 安岳县| 灵寿县| 乌苏市| 麟游县| 全南县| 长海县|