利用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");
}
}