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


    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;";
    }
    }

  • 相关阅读:
    爬虫_监控某个元素所有事件
    Selenium_Selenium WebDriver 中鼠标和键盘事件分析及扩展
    Selenium_webdriver获取iframe子页面元素
    Java_Servlet 中文乱码问题及解决方案剖析
    thinkphp自动填充分析
    linux安装配置SVN并设置钩子
    HTTP协议提要
    一致性Hash算法(分布式算法)
    设计模式之:原型模式
    面向对象设计的五大原则
  • 原文地址:https://www.cnblogs.com/jiangyi666/p/5506327.html
Copyright © 2020-2023  润新知