高手啊:
你们好?
我用datagrid属性的按钮列做删除事件,编辑,更新、取消,调试成功。运行后,删除行删不了,按“编辑”也是原样。代码如下:请高手帮忙啊
//编辑
private void DataGrid1_EditCommand_1(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex = e.Item.ItemIndex;
this.BindGrid();
}
//更新
private void DataGrid1_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string upStr="UPDATE WH_xap SET CNo=@CNo,PBItem=@PBItem,PBLot=@PBLot,DamageQty=@DamageQty WHERE WH_xap_id=@WH_xap_id"; SqlCommand upCmd=new SqlCommand(upStr,cn);
upCmd.Parameters.Add("@WH_xap_id",SqlDbType.SmallInt,2);
upCmd.Parameters.Add("@CNo",SqlDbType.VarChar,50);
upCmd.Parameters.Add("@PBItem",SqlDbType.VarChar,1);
upCmd.Parameters.Add("@PBLot",SqlDbType.VarChar,1);
//upCmd.Parameters.Add("@DamageQty",SqlDbType.SmallInt,2);
upCmd.Parameters.Add("@DamageQty",SqlDbType.VarChar,1);
upCmd.Parameters[0].Value = ((TextBox) e.Item.Cells[2].Controls[0]).Text;
upCmd.Parameters[1].Value = ((TextBox) e.Item.Cells[3].Controls[0]).Text;
upCmd.Parameters[2].Value = ((TextBox) e.Item.Cells[4].Controls[0]).Text;
upCmd.Parameters[3].Value = this.DataGrid1.DataKeys[e.Item.ItemIndex]; try
{
cn.Open();
upCmd.ExecuteNonQuery();
cn.Close();
if(!Page.IsStartupScriptRegistered("upAlert"))
{
Page.RegisterStartupScript("upAlert",@"<script language='javascript'>alert('更新成功')</script>");
}
this.DataGrid1.EditItemIndex = -1;
BindGrid();
}
catch(Exception err)
{
Response.Write(err.Message);
}
finally
{
if(cn.State == ConnectionState.Open)
{
cn.Close();
}
}
}
//取消
private void DataGrid1_CancelCommand_1(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex = -1;
this.BindGrid();
}//ItemdataBound
//删除
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string delStr="DELETE FROM WH_xap WHERE WH_xap_id=@WH_xap_id"; SqlCommand sqlCmd=new SqlCommand(delStr,cn); sqlCmd.Parameters.Add("@WH_xap_id",SqlDbType.SmallInt,2);
//Response.Write(((TextBox) e.Item.Cells[2].Controls[0]).Text.ToString());
//sqlCmd.Parameters["@WH_xap_id"].Value = this.DataGrid1.DataKeys[e.Item.ItemIndex]; sqlCmd.Parameters["@WH_xap_id"].Value =Int32.Parse( ((Label)e.Item.Cells[1].Controls[0]).Text);
try
{
cn.Open();
sqlCmd.ExecuteNonQuery();
cn.Close(); if(!Page.IsStartupScriptRegistered("delAlert"))
{
Page.RegisterStartupScript("delAlert",@"<script language='javascript'>alert('删除成功');</script>");
} BindGrid();
}
catch(Exception err)
{
Response.Write(err.Message);
}
finally
{
if(cn.State == ConnectionState.Open)
{
cn.Close();
}
}
}
你们好?
我用datagrid属性的按钮列做删除事件,编辑,更新、取消,调试成功。运行后,删除行删不了,按“编辑”也是原样。代码如下:请高手帮忙啊
//编辑
private void DataGrid1_EditCommand_1(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex = e.Item.ItemIndex;
this.BindGrid();
}
//更新
private void DataGrid1_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string upStr="UPDATE WH_xap SET CNo=@CNo,PBItem=@PBItem,PBLot=@PBLot,DamageQty=@DamageQty WHERE WH_xap_id=@WH_xap_id"; SqlCommand upCmd=new SqlCommand(upStr,cn);
upCmd.Parameters.Add("@WH_xap_id",SqlDbType.SmallInt,2);
upCmd.Parameters.Add("@CNo",SqlDbType.VarChar,50);
upCmd.Parameters.Add("@PBItem",SqlDbType.VarChar,1);
upCmd.Parameters.Add("@PBLot",SqlDbType.VarChar,1);
//upCmd.Parameters.Add("@DamageQty",SqlDbType.SmallInt,2);
upCmd.Parameters.Add("@DamageQty",SqlDbType.VarChar,1);
upCmd.Parameters[0].Value = ((TextBox) e.Item.Cells[2].Controls[0]).Text;
upCmd.Parameters[1].Value = ((TextBox) e.Item.Cells[3].Controls[0]).Text;
upCmd.Parameters[2].Value = ((TextBox) e.Item.Cells[4].Controls[0]).Text;
upCmd.Parameters[3].Value = this.DataGrid1.DataKeys[e.Item.ItemIndex]; try
{
cn.Open();
upCmd.ExecuteNonQuery();
cn.Close();
if(!Page.IsStartupScriptRegistered("upAlert"))
{
Page.RegisterStartupScript("upAlert",@"<script language='javascript'>alert('更新成功')</script>");
}
this.DataGrid1.EditItemIndex = -1;
BindGrid();
}
catch(Exception err)
{
Response.Write(err.Message);
}
finally
{
if(cn.State == ConnectionState.Open)
{
cn.Close();
}
}
}
//取消
private void DataGrid1_CancelCommand_1(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex = -1;
this.BindGrid();
}//ItemdataBound
//删除
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string delStr="DELETE FROM WH_xap WHERE WH_xap_id=@WH_xap_id"; SqlCommand sqlCmd=new SqlCommand(delStr,cn); sqlCmd.Parameters.Add("@WH_xap_id",SqlDbType.SmallInt,2);
//Response.Write(((TextBox) e.Item.Cells[2].Controls[0]).Text.ToString());
//sqlCmd.Parameters["@WH_xap_id"].Value = this.DataGrid1.DataKeys[e.Item.ItemIndex]; sqlCmd.Parameters["@WH_xap_id"].Value =Int32.Parse( ((Label)e.Item.Cells[1].Controls[0]).Text);
try
{
cn.Open();
sqlCmd.ExecuteNonQuery();
cn.Close(); if(!Page.IsStartupScriptRegistered("delAlert"))
{
Page.RegisterStartupScript("delAlert",@"<script language='javascript'>alert('删除成功');</script>");
} BindGrid();
}
catch(Exception err)
{
Response.Write(err.Message);
}
finally
{
if(cn.State == ConnectionState.Open)
{
cn.Close();
}
}
}
看看事件是不是丢失了
System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand_1);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand_1);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound_1);