详解GridView自带的编辑删除更新功能

GridView自带编辑删除更新逻辑很简单:操作完,重新绑定。总结总结,防止忘记。。。

效果图:

前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridView_bianjidelete.aspx.cs" Inherits="gridView_bianjidelete" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
   ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
   OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">
      <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
      <Columns>
       <asp:BoundField DataField="ID" HeaderText="产品ID" ReadOnly="True" />
       <asp:BoundField DataField="name" HeaderText="产品name" />
       <asp:BoundField DataField="stock" HeaderText="库存" />
       <asp:CommandField HeaderText="选择" ShowSelectButton="True" />
       <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
       <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
      </Columns>
      <RowStyle ForeColor="#000066" />
      <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="Red" />
      <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
      <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
     </asp:GridView>
 </div>
 </form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class gridView_bianjidelete : System.Web.UI.Page
{//清清月儿http://blog.csdn.net/21aspnet
 SqlConnection sqlcon;
 SqlCommand sqlcom;
 string strCon = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString;
 protected void Page_Load(object sender, EventArgs e)
 {
  if (!IsPostBack)
  {
   bind();
  }
 }
 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
 {
  GridView1.EditIndex = e.NewEditIndex;
  bind();
 }
 //删除之后重新绑定
 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 {
  string sqlstr = "delete from product where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
  sqlcon = new SqlConnection(strCon);
  sqlcom = new SqlCommand(sqlstr, sqlcon);
  sqlcon.Open();
  sqlcom.ExecuteNonQuery();
  sqlcon.Close();
  GridView1.DataBind();
  bind();
 }
 //更新
 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
 {
  sqlcon = new SqlConnection(strCon);
  string sqlstr = "update product set name='"
   + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',stock='"
   + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' where id='"
   + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
  sqlcom = new SqlCommand(sqlstr, sqlcon);
  sqlcon.Open();
  sqlcom.ExecuteNonQuery();
  sqlcon.Close();
  GridView1.EditIndex = -1;
  // GridView1.DataBind();
  bind();
 }
 //取消
 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
 {
  GridView1.EditIndex = -1;
  bind();
 }
 //绑定
 public void bind()
 {
  string sqlstr = "select * from product p,Uuser u where p.userid=u.id";
  sqlcon = new SqlConnection(strCon);
  SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
  DataSet myds = new DataSet();
  sqlcon.Open();
  myda.Fill(myds, "datatable");
  GridView1.DataSource = myds;
  GridView1.DataKeyNames = new string[] { "id" };//主键
  GridView1.DataBind();
  sqlcon.Close();
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

时间: 2016-12-25

asp.net中gridview的查询、分页、编辑更新、删除的实例代码

1.A,运行效果图 1.B,源代码/App_Data/sql-basic.sql 复制代码 代码如下: use mastergoif exists(select * from sysdatabases where name='db1')begin    drop database db1endgocreate database db1gouse db1go-- ================================-- ylb:1,类别表-- =====================

Asp.net中安全退出时清空Session或Cookie的实例代码

概览: 网站中点击退出,如果仅仅是重定向到登录/出页面,此时在浏览器地址栏中输入登录后的某个页面地址如主页,你会发现不用登录就能访问.这种所谓的退出并不是安全的. 那么怎样做到安全退出呢? 那就是点击退出后清空相应的Session或Cookie. 清空Session的代码: Session.Clear(); Session.Abandon(); 清除Cookie的正确代码(假设Cookie名称为UserInfo): if (Request.Cookies["UserInfo"] !=

asp.net中GridView编辑,更新,合计用法示例

本文实例讲述了asp.net中GridView编辑,更新,合计用法.分享给大家供大家参考,具体如下: 前台代码: <asp:GridView ID="tabgv" runat="server" DataKeyNames="ysId" ShowFooter="True" OnRowDataBound="GridView1_RowDataBound" OnRowCreated="GridView

灵活掌握asp.net中gridview控件的多种使用方法(上)

灵活使用asp.net中gridview控件的方法有很多种,本文内容很富,希望大家都能有所收获. 1.GridView无代码分页排序: 效果图: 小提示: 1.AllowSorting设为True,aspx代码中是AllowSorting="True": 2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12". 3.默认的是单向排序的,右击GridView弹出"属性",选择AllowSort

灵活掌握asp.net中gridview控件的多种使用方法(下)

继续上篇文章的学习<灵活掌握asp.net中gridview控件的多种使用方法(上)>,在此基础上巩固gridview控件的操作使用,更上一层楼. 11.GridView实现用"..."代替超长字符串: 效果图: 解决方法:数据绑定后过滤每一行即可 for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv; string gIntro; if (GridView1.PageIndex

ASP.NET中GridView的文件输出流方式

ASP.NET提供了许多种数据服务器控件,用于在Web页面中显示数据库中的表数据,GridView控件就是其中之一.这个控件和我们以前学过的DataGridView控件几乎是一样的,所以对GridView控件我们也并不陌生. 第一步:设置好你所需要的gridview所需要的Columns列,绑定好数据,我的第一列的数据因为数据库中保存的是"日月年时分秒"的格式,在输出的时候,我给它加了一个dataformatstring的值"{0:yyyy-MM-dd}",年月日的

ASP.NET中GridView、DataList、DataGrid三个数据控件foreach遍历用法示例

本文实例讲述了ASP.NET中GridView.DataList.DataGrid三个数据控件foreach遍历用法.分享给大家供大家参考,具体如下: //gridview遍历如下: foreach (GridViewRow row in GridView1.Rows) { CheckBox cb = (CheckBox)row.FindControl("CheckBox2"); if (cb.Checked == true) { } } //datagrid遍历: foreach (

ASP.NET中GridView 重复表格列合并的实现方法

这几天做一个项目有用到表格显示数据的地方,客户要求重复的数据列需要合并,就总结了一下GridView 和 Repeater 关于重复数据合并的方法. 效果图如下: GridView : 前台代码 : <div> <asp:GridView ID="gvIncome" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateFie

Django中使用jquery的ajax进行数据交互的实例代码

jquery框架中提供了$.ajax.$.get.$.post方法,用于进行异步交互,由于Django中默认使用CSRF约束,推荐使用$.get 示例:实现省市区的选择 最终实现效果如图: 将jquery文件拷贝到static/js/目录下 打开booktest/views.py文件,定义视图area1,用于显示下拉列表 #提供显示下拉列表的控件,供用户操作 def area1(request): return render(request,'booktest/area1.html') 打开bo

往xml中更新节点的实例代码

往xml中更新节点的实例代码 /* System.out.println("2323"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder docbuilder = factory.newDocumentBuilder(); Document parse = docbuilder .parse(new File("src/ProdQuery.xml&q