利用webgrid實現數據的批處理(添加和修改)

       利用webgrid實現數據的批處理(添加和修改)


1.原理及使用的技術
  (1) webgrid的允許添加、允許修改的功能實現即時的更新(DataSet)
  (2) 利用SqlDataAdapter的Update方法,更新數據源,達到更新數據庫的目的。
2.實現過程
  (1) 添加一個webgrid(webgrid1)設置它的AllowAddNew,和AllowEdit的屬性爲True.
  (2) 指定該webgrid的DataMember,併爲它添加需要顯示的列。
  (3) 複製一個與(webgrid1)一模一樣的webgrid命名爲wgridtmp。
3.代碼如下.
  private void bind(WebGrid dg)
 {  
    if(chkadd.Checked ==false)
 {
  DataSet dstmp=new DataSet();
  if(!dstmp.Tables.Contains("checks"))
  {
   dstmp.Tables.Add(sqldst.Tables["checks"].Clone());
  }
  wgridtmp.DataSource=dstmp;
 }
 dg.DataSource=sqldst;
 dg.DataMember ="checks";
 dg.DataBind();
  }
  private void WebGrid1_AddRow(object sender, ISNet.WebUI.WebGrid.RowEventArgs e)
  {
 //((DataRow)e.Row.DataRow)["checks_xmbh"]=this.txtxmbh.Text.Trim ();
 DataSet dsx=(DataSet)WebGrid1.DataSource;
 DataSet dst=(DataSet)wgridtmp.DataSource;
 dst.Merge(dsx.Tables["checks"].GetChanges(System.Data.DataRowState.Added),false,System.Data.MissingSchemaAction.Add);
 wgridtmp.DataSource=dst;
  }
   private void save()
  {
 try
 {
  DataSet dstmp=(DataSet)this.wgridtmp.DataSource;
  if(dstmp!=null)
   sqldap.Update(dstmp);
  else
  {
   Response.Write(msg.MessageBox("數據格式、長度及範圍有誤!"));
  }
 }
 catch(SqlException Ex)
 { 
  Response.Write(msg.MessageBox("數據格式、長度及範圍有誤,錯誤號:"+Ex.Number+",詳細:"+Ex.Message));
  DataSet dserr=(DataSet)this.WebGrid1.DataSource;
  dserr.RejectChanges();
  this.WebGrid1.DataSource=dserr;
  this.WebGrid1.DataBind();
 }
 finally
 {
  setwgrid(this.WebGrid1 ,"");
  settoolbar(this.Toolbar1,true);
  sqldst.Clear();
  sqldap.Fill (sqldst,"checks");   
 } 
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章