加载:

点击编辑:

数据库设计:

前端代码:

  1. DataKeyNames="ID"  设置点击“编辑”选项的时候,要获取的值,一般获取ID主键,便于修改数据。
  2. AutoGenerateColumns="False"  设置“设置是否自动生成列”为False。
  3. ReadOnly="True"  设置为只读,这样在点击编辑的时候,设置为只读的字段,不会变成文本框。
  4. DataField="ID"  设置绑定数据的字段名称。
  5. OnRowEditing ="GridView1_RowEditing"  编辑。
  6. OnRowDeleting ="GridView1_RowDeleting"  删除。
  7. OnRowCancelingEdit ="GridView1_RowCancelingEdit"  取消。
  8. OnRowUpdating ="GridView1_RowUpdating1">  更新。
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"
DataKeyNames="ID"
AutoGenerateColumns="False"
OnRowEditing ="GridView1_RowEditing"
OnRowDeleting ="GridView1_RowDeleting"
OnRowCancelingEdit ="GridView1_RowCancelingEdit"
OnRowUpdating ="GridView1_RowUpdating1">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" ReadOnly="True" />
<asp:BoundField HeaderText="Name" DataField="Name" ReadOnly="True" />
<asp:BoundField HeaderText="Score" DataField="Score"/>
<asp:CommandField HeaderText ="删除" ShowDeleteButton="true" />
<asp:CommandField HeaderText="修改" ShowEditButton="True" />
</Columns>
</asp:GridView>
</div>
</form>

后台代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindSoure();
}
} /// <summary>
/// 绑定数据源
/// </summary>
public void BindSoure()
{
this.GridView1.DataSource = SQLHelper.ExecuteTable("select ID, Name, Score from Tb_Mark", System.Data.CommandType.Text);
this.GridView1.DataBind();
} /// <summary>
/// 编辑记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//获得编辑列
GridView1.EditIndex = e.NewEditIndex;
//重新绑定数据
BindSoure();
} /// <summary>
/// 删除记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//获取编辑列的键值对中的值。在属性的DataKeyNames中设置。对一个的ID
int UpdateIdentifier = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()); string text = "delete from Tb_Mark where ID = '" + UpdateIdentifier + "'"; if (SQLHelper.ExecuteNonQuery(text, System.Data.CommandType.Text) != 1)
{
ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('删除失败!')</script>");
}
//重新绑定数据
BindSoure();
} /// <summary>
/// 取消修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//退出编辑状态
GridView1.EditIndex = -1;
//重新绑定数据
BindSoure();
} /// <summary>
/// 更新修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating1(object sender, GridViewUpdateEventArgs e)
{
//获取编辑列的键值对中的值。在属性的DataKeyNames中设置。对一个的ID
int UpdateIdentifier = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
//获取第三列Score的值(从0开始),要修改的值。
int UpdateValue = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString()); string text = "update Tb_Mark set Score = '" + UpdateValue + "' where ID = '" + UpdateIdentifier + "'"; if (SQLHelper.ExecuteNonQuery(text, System.Data.CommandType.Text) != 1)
{
ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('更新失败!')</script>");
}
//退出编辑状态
GridView1.EditIndex = -1;
//重新绑定数据
BindSoure();
}

  

  

  

ASP.NET - GridView实现点击编辑列的更多相关文章

  1. C# GridView点击某列打开新浏览器窗口

    C# GridView点击某列打开新窗口的方式: (1)打开浏览器新窗口:蓝色部分 通过超链接. (2)打开模式化窗口:通过OnRowCommand事件,弹出模式化窗口. 具体如下: <asp: ...

  2. Asp.net GridView 72般绝技

    快速预览:GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠 ...

  3. Asp.net GridView控件使用纪要

    1:数据绑定 GridView 支持数据绑定的数据源格式比较多,例如可以使用ObjectDataSource绑定数据源, Dataset,datatable,List<T>等 2:列绑定 ...

  4. ASP.NET GridView HyperLinkField传值和取值【转】

    来源:http://www.cnblogs.com/junjie94wan/archive/2011/08/17/2143623.html 经常做Winform程序,好久没有做WEB都有些生疏了,Gr ...

  5. gridview中后台获取某列的值

    下面的gridview中,获取某行某列的值(非模板页),如图所示 <asp:GridView AutoGenerateColumns="false" CssClass=&qu ...

  6. 图解DataGridView编辑列

    WinForm中DataGridView功能强大,除了可以自动绑定数据源外,还可以根据需求编辑列.下面以截图说明添加编辑列的步骤(HoverTreeSCJ 项目实际界面). 1.选择DataGridV ...

  7. asp.net gridview 鼠标悬浮提示信息

    使用场景: gridview绑定数据,某列数据太多,故超过一定字符,隐藏起来,同时鼠标移到指定列显示其明细信息: 知识点: 1,oderListTbl_DataBound事件中,添加,oderList ...

  8. 【DevExpress v17.2新功能预告】增强ASP.NET GridView的功能

    在下一个主要版本v17.2中,我们将为DevExpress ASP.NET GridView添加一些优秀的新功能.在本文中为大家介绍的所有功能都可用于 GridView的ASP.NET WebForm ...

  9. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版 在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵 ...

随机推荐

  1. Android JNI(转)

    JNI,全称Java Native Interface,是用于让运行在JVM中的Java代码和运行在JVM外的Native代码(主要是C或者C++)沟通的桥梁.代码编写者即可以使用JNI从Java的程 ...

  2. virtualbox centos安装增强工具

    系统的,VBoxLinuxAdditions-amd64.run 是用于64位系统的.执行以下命令来安装sh ./VBoxLinuxAdditions-x86.run 5.安装成功后重启系统.

  3. effective c++ 条款8 prevent exception from leaving destructor

    1 析构函数绝对不要吐出异常.如果一个析构函数可能调用产生异常的函数,析构函数应该不传播该异常或结束程序 2 如果客户需要对某个操作函数运行期间抛出的异常做出反应,那么class应该提供一个普通函数执 ...

  4. Java中的变量数据类型补充

    Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...

  5. mysql的学习笔记(二)

    1.数据类型,存储的类型. 整型 TINYINT 有符号-128到127 无符号值:0到255 1字节 SMALLINT 有符号 -32768到32767 0到65535 2字节 MEDIUMINT ...

  6. ionic ion-tab图标修改, 自定义tab图标

    遇到需要自定义tab图标很简单, 只需要自定义相应的css就可以了, 这里要注意的是如何调整背景图片的大小. <ion-view hide-back-button="false&quo ...

  7. android 常用渐变背景绘制

    从上到下绘制如图所示 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android= ...

  8. Windows平台下tomcat+java的web程序持续占cpu问题调试

    1.问题 Tomcat服务器跑了一段时间后,发现Tomcat进程占用的CPU资源在80%-100%间,加上其它的进程,整个服务器的CPU处理100%运行状态. 2.通过process explorer ...

  9. Java如何设置线程的优先级?

    在Java编程中,如何设置线程的优先级? 以下示例如何使用setPriority()方法来设置线程的优先级. package com.yiibai; public class SettingPrior ...

  10. https请求过程

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL ...