GridView 的编辑删除


public partial class GridView : System.Web.UI.Page
{
   
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;";
               
//if (e.Row.RowState == DataControlRowState.Edit)
               
//{
                   
//e.Row.Attributes.Add("onclick", "_doPostBack(""+((Button)e.Row.Cells[1].Controls[0].ClientID.Replace("_", "$_")));

               
//}
            }
        }

      
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值