GridView编辑删除总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一种:使用DataSource数据源中自带的编辑删除方法,这种不常用,在这里就不加
说明了。
第二种:使用
GridView的三种事件:GridView1_RowEditing(编辑)、GridView1_RowUpdating(更新)、GridView1_RowCancelingEdit(取消编辑)。GridView1属性中将DataKeyNames
的值设置为主键名,否则找不到索引,这个很重要哦。
该方法有2种操作,一种是不对绑定列转换为模板列,另外一种是转换为模板列。
这里先说不转换为模板列的情况;
首先;先对GridView进行数据绑定,不管用代码绑定还是DataSource绑定都可以。绑定好后,
对GridView添加绑定列和编辑列(注意这里,添
加好后不做任何改动,千万不要将它们转换为模板列),添加好后,将所要绑定的数据库表字段填入
属性中。
然后,分别激活上述提到的三种事件,然后添加代码:
{ //执行删除
string str = "delete from tb_hby where id='"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'"; db.Delete(str); //db是操作类的实例,Delete是删除数据的方法
this.GridView1.DataBind();
}
{//执行更新
string cell1 =
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();//第
一列注意这种写法很重要
string cell2 =
((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();//第
二列注意这种写法很重要
string str = "update tb_hby set hby_title='"+ cell1 + "',hby_Datetime='"+ cell2 + "' where
id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
db.Update(str);//db是操作类的实例,Update是更新数据的方法
GridView1.EditIndex = -1;
GView();
}
{//激活编辑按钮的事件
this.GridView1.EditIndex = e.NewEditIndex;
GView();
}
{//取消编辑状态的事件
GridView1.EditIndex = -1;
GView();
}
ReadOnly=”true”即可。
此方法有一些缺点,比如对日期列进行格式化时,显示的时候是格式化后的日期,但是在编辑状态下仍然显示出日期的原貌,还有,某一列的字符太长时,不好对它进行字符截取。
在点击删除按钮的时候,如果需要一个弹出删除提示,则要将删除列转化为模板列,其代码如下:
CommandName="Delete"OnClientClick="return confirm('确定要删除吗?')" Text="删除">
也可以这样写:
在RowDataBind事件中:
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lnkdelete = (LinkButton)e.Row.FindControl("lnkdelete");
lnkdelete.Attributes.Add("onclick","return confirm('您确定要删除吗?')");
}
如果不转化为模板列,这这样写:
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
//((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick",
"javascript:return confirm('你确认要删除:\"" + e.Row.Cells[0].Text + "\"吗?')");
((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick",
"javascript:return confirm('你确认要删除吗?')");
}
}
完整代码如下:
OnRowDeleting="GridView1_RowDeleting"OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit"OnRowUpdating="GridView1_RowUpdating"> ReadOnly="True"SortExpression="id"/> SortExpression="hby_Title"AccessibleHeaderText="fgfg"/> CausesValidation="False"CommandName="Delete"OnClientClick="return confirm('确定要删除吗? ')" Text="删除">