關於DataGrid Web控制項的熱門問題

來源:互聯網
上載者:User
datagrid|web|控制項|問題   
使用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) 

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。