注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

ASP.NET中的GridView自带的编辑更新功能  

2015-02-04 10:33:51|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 
protected void Page_Load(object sender, EventArgs e) 

if (!IsPostBack) 

GridView1.AllowSorting = true; 
BindData(); 
SetGrid(); 
//ViewState["style"] = "0"; 




private void BindData() 


SqlConnection MyCon = new SqlConnection(ConStr); 
string QueryStr = "SELECT customerid,CompanyName,ContactName,Address FROM customers"; 
SqlDataAdapter Da = new SqlDataAdapter(QueryStr,MyCon); 
DataSet Ds = new DataSet(); 
Da.Fill(Ds,"Customers"); 
GridView1.DataSource = Ds.Tables[0]; 
GridView1.DataKeyNames = new string []{"customerid"}; 
GridView1.DataBind(); 




private void SetGrid() 

GridView1.AllowPaging = true; 
//GridView1.PageSize = 15; 



protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 

GridView1.PageIndex = e.NewPageIndex; 
BindData(); 



protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 

GridView1.EditIndex = e.NewEditIndex; 
GridView1.EditRowStyle.BackColor = Color.Black; 
BindData(); 



protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 

GridView1.EditIndex = -1; 
BindData(); 



protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 

GridViewRow Row = GridView1.Rows[e.NewSelectedIndex]; 
Response.Write("<script>alert('你选择了ID为" + Row.Cells[3].Text + "的行');</script>"); 



protected void GridView1_PageIndexChanged(object sender, EventArgs e) 

Response.Write("<script>alert('你切换到了第" + (GridView1.PageIndex+1) + "页');</script>"); 



protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 

GridViewRow Row = GridView1.SelectedRow; 
Row.BackColor = Color.Crimson; 



protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 

string ID = GridView1.DataKeys[e.RowIndex].Value.ToString(); 
//防止非法的输入,预防脚本攻击 
string CustomerId = Server.HtmlDecode(((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString()); 
string CompanyName = Server.HtmlDecode(((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString()); 
string ContactName = Server.HtmlDecode(((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString()); 
string Address = Server.HtmlDecode(((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text.ToString()); 
SqlConnection Con = new SqlConnection(ConStr); 
try 

string UpdateStr = "UPDATE customers SET companyname='" + CompanyName + "',contactname='" + ContactName + "',address='" + Address + "' WHERE customerid='" + ID + "'"; 
SqlCommand Cmd = new SqlCommand(UpdateStr, Con); 
//尽可能晚的打开连接,尽早的关闭连接 
Con.Open(); 
Cmd.ExecuteNonQuery(); 
GridView1.EditIndex = -1; 
BindData(); 

catch (Exception ex) 

Response.Write("<script>alert('编辑出错,请重新填写');</script>"); 
GridView1.EditIndex = -1; 
BindData(); 

//要及时的关闭打开的连接,提高程序的性能 
finally 

Con.Dispose(); 




protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 

string ID = GridView1.DataKeys[e.RowIndex].Value.ToString(); 
string QueryStr = "DELETE FROM customers WHERE customerid='" + ID + "'"; 
SqlConnection Con = new SqlConnection(ConStr); 
SqlCommand Cmd = new SqlCommand(QueryStr,Con); 
try 

Con.Open(); 
Cmd.ExecuteNonQuery(); 
BindData(); 
Response.Write("<script>alert('成功删除');</script>"); 

catch (Exception ex) 

Response.Write("<script>alert('删除有误,请检查该表是否与其他表有约束');</script>"); 

finally 

Con.Dispose(); 



//**************************************************************************************************************** 
//当它写为“return confirm();”的时候,后边的任何客户端代码都不可能执行, 
//因此你注册时设计处理不可能执行。有些所谓的“示例”代码给你这样写的时候,你要注意, 
//它应该并不为按钮注册事件处理方法(注册了就很可笑了,因为根本无用),而是通过设置按钮的CommandName来让gridview处理。 
//这种写法下,按钮仅仅是提供命令名称和参数。 
//如果你要让后边的代码执行,应该写: 
//b.Attributes["onclick"] = "if(!confirm('你真的要删除该条记录么?'))return false;"; 
//***************************************************************************************************************** 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 

if (e.Row.RowType == DataControlRowType.DataRow) 

if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate) 

//这种写法不管你点击的是什么,后面的代码都不会执行。 
//((Button)e.Row.Cells[2].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('确定要删除"" + e.Row.Cells[3].Text + ""吗?')"); 
//正确的写法 
((Button)e.Row.Cells[2].Controls[0]).Attributes["onclick"] = "if(!confirm('你真的要删除" + e.Row.Cells[3].Text + "这条记录么?'))return false;"; 

}
  评论这张
 
阅读(94)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017