直接在DataGrid上删除,修改的方法
1 DataGrid的设置:
Id: 不可见,不可编辑
CityName: 可见可编辑
删除:
修改:
如果在修改的时候,总不能得到新的编辑的值,就是因为在 Page_Load里面每次都DataBound了。
2 动作代码如下:
//删除代码
protected void dgCityName_DeleteCommand(object source, DataGridCommandEventArgs e)
{
bEditing = false;
//删除这个城市
string strId = e.Item.Cells[0].Text; //得到不可修改的内容
string strDelSql = myIdrDa.BuildDeleteCitySql(strId);
int iResult = myIdrDa.ExecuteSql(strDelSql);
if (iResult == 0)
{//如果删除失败
Response.Write("<script language=javascript>alert('您已经成功删除了" + iResult + "条记录');</script>");
}
else
{//如果删除成功
Response.Write("<script language=javascript>alert('您已经成功删除了" + iResult + "条记录');</script>");
}
FillDataGrid(dgCityName, myIdrDa.BuildSearchCitySql());
}
//修改
protected void dgCityName_UpdateCommand(object source, DataGridCommandEventArgs e)
{
bEditing = false;
string strId = e.Item.Cells[0].Text; //得到静态内容
string strCityName = ((TextBox)e.Item.Cells[1].Controls[0]).Text; //得到动态内容
//更新这个城市
string strUpdateSql = myIdrDa.BuildUpdateCitySql(strId, strCityName);
int iResult = myIdrDa.ExecuteSql(strUpdateSql);
this.dgCityName.EditItemIndex = -1;
Response.Write("<script language=javascript>alert('您已经成功修改了" + iResult + "条记录');</script>");
FillDataGrid(dgCityName, myIdrDa.BuildSearchCitySql());
}
//编辑
protected void dgCityName_EditCommand(object source, DataGridCommandEventArgs e)
{
bEditing = true; //说明正在编辑
this.dgCityName.EditItemIndex = (int)e.Item.ItemIndex;
FillDataGrid(dgCityName, myIdrDa.BuildSearchCitySql());
}
//取消修改
protected void dgCityName_CancelCommand(object source, DataGridCommandEventArgs e)
{
bEditing = false;
this.dgCityName.EditItemIndex = -1;
FillDataGrid(dgCityName, myIdrDa.BuildSearchCitySql());
}
protected void dgCityName_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType.ToString() == "Item" || e.Item.ItemType.ToString() == "AlternatingItem")
{
e.Item.Cells[2].Attributes.Add("onclick", "return confirm('你确认要删除这条记录么?')");
((LinkButton)e.Item.Cells[2].Controls[0]).Enabled = true;
}
if (e.Item.ItemType.ToString() == "EditItem")
{
if (bEditing == true)
{//如果正在编辑,就不让删除
e.Item.Cells[2].Attributes.Remove("onclick");
((LinkButton)e.Item.Cells[2].Controls[0]).Enabled = false;
}
else
{
e.Item.Cells[2].Attributes.Add("onclick", "return confirm('你确认要删除这条记录么?')");
((LinkButton)e.Item.Cells[2].Controls[0]).Enabled = true;
}
}
}