DataGrid带分页功能时更新.删除操作

//分页操作
  private void dg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   dg.CurrentPageIndex=e.NewPageIndex;
   dg.DataBind();
  }
  //编辑操作
  private void dg_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   dg.EditItemIndex=e.Item.ItemIndex;
   dg.DataBind();
  }
  //更新操作
  /*==========================================带分页功能时更新.删除操作==========================
  
   e.Item.ItemIndex只能获取当前页面的索引,而带分页更新,删除是对整个DataSet中表的索引.所以
   要取得我们所更新,删除项在整个表中的索引,我们把当前的页索引(dg.CurrentPageIndex)乘以每
   页所显示的项数(dg.PageSize)后再加上在当前中的索引.便得到了被选中项在整个表中的索引.
   
  ===============================================================================================*/
  private void dg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataRow drw=ds1.test.Rows[dg.CurrentPageIndex*dg.PageSize+e.Item.ItemIndex];
   for(int i=0;i<4;++i)
   {
    TextBox txb=(TextBox)e.Item.Cells[i].Controls[0];
    drw[i]=txb.Text;
   }
   ada.Update(ds1);
   dg.EditItemIndex=-1;
   dg.DataBind();
  }
  //取消操作
  private void dg_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   dg.EditItemIndex=-1;
   dg.DataBind();
  }
  //删除操作
  private void dg_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataRow dr=ds1.test.Rows[dg.CurrentPageIndex*dg.PageSize+e.Item.ItemIndex];//获取被选项中行
   dr.Delete();//删除行
   ada.Update(ds1);//更新数据集
   dg.EditItemIndex=-1;
   dg.DataBind();
  }


好像不能这样找datarow的,最近正好也在看dg.
customerId=(int)DataGrid1.DataKeys[DataGrid1.SelectedIndex];
ds1.Employees.FindByEmployeeID(customerId)

参考msdn:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbtskAllowingUsersToEditItemsInDataGridWebControl.htm

你可能感兴趣的:(datagrid)