今天在用GridView控件时,发现了一个问题,就是使用GridView控件在删除数据时的问题。接下来我们通过模板列方式和CommandField方式删除某条数据讲解下两者之间的区别。

方式一:通过模板列式删除数据

案例:在页面中添加一个GridView控件,然后通过编辑列的方式为GridView添加对应的列。如下图:红色圈起的部分为模板列的删除列

然后在编辑模板中拖一个删除按钮,如下图

接下来我们就可以编写代码了。

找到GridView的RowCommand事件,如下图

然后在源视图下,添加如下三个重要的属性

CommandName:命令的名称,值一般写成Delete,也可以写成其他名称,但是为了见名知意,我们写成Delete就ok

CommandArgument:命令参数

OnClientClick:注册客户端脚本,我们都知道,删除数据之前要给用户一个提示,可以通过该属性实现。如下图:

接下来我们就可以在RowCommand中编写代码了

if (e.CommandName == "Delete") //如果是删除按钮

{

string stuNO = e.CommandArgument.ToString(); //获取学生编号

string sql = "delete from Student where studentno='" + stuNO + "'";

int result = SqlHelper.ExecuteNonQuery(sql, CommandType.Text);

if (result > 0)

{

Response.Write("<script type=text/javascript>alert('删除成功!')</script>");

BindData();

}

else

{

Response.Write("<script type=text/javascript>alert('删除失败!')</script>");

}

}

这样我们就可以删除一条数据了。

方式二:CommandField实现删除某条数据

由于CommandField方式会引发RowDeleting事件,所以我们直接在GridView的RowDeleting事件中编写代码就可以了,代码如下:

string stuNo = GridView1.DataKeys[e.RowIndex].Value.ToString();

string sql = "delete from Student where studentno='" +stuNo+ "'";

int result = SqlHelper.ExecuteNonQuery(sql, CommandType.Text);

if (result > 0)

{

Response.Write("<script type=text/javascript>alert('删除成功!')</script>");

BindData();

}

else

{

Response.Write("<script type=text/javascript>alert('删除失败!')</script>");

}

最后我们对这两中方式的删除做个总结。

模板列中通过按钮删除某条数据:

01.不会引发RowDeleting事件

02.需要给模板列设置CommandName和CommandArgument

03.通过  string stuNO = e.CommandArgument.ToString();拿到主键

当然前提是在前台页面中用CommandArgument='<%# Bind("studentNo")%>'进行设置

通过ComandField删除某条数据

1.  GridView1.DataKeyNames = new string[] { "StudentNo" };

2.既会触发RowCommand事件,又会触发RowDeleting事件,并且RowCommand事件

会先被触发,这样的话就不能再同一个GridView中既用模板列删除,又用超链接删除!

3.获取主键方式: string stuNo=GridView1.DataKeys[e.RowIndex].Value.ToString();         */

注意:之所以可以通过GridView1.DataKeys[e.RowIndex].Value.ToString();

获取到当前选中行的主键是因为为GridView设置了DataKeyNames。

好了,今天就先总结到这里。以后会陆续更新GridView的使用方法。如果这篇博文能给迷途中的你一丁点儿帮助,那便是极好的。特别是在这个推崇丢弃服务器端控件的时代。

ASP.NET中GridView控件删除数据的两种方法的更多相关文章

  1. 关于开发C#中的asp.net中gridview控件的使用

    原文网址:http://blog.sina.com.cn/s/blog_67f1b4b201017663.html 1.GridView无代码分页排序: 效果图: 1.AllowSorting设为Tr ...

  2. MySQL中删除数据的两种方法

    转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...

  3. C#实现Dll(OCX)控件自动注册的两种方法 网上找的 然后 自己试了试 还是可以用的

    尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候,我们通常会通 ...

  4. C#实现Dll(OCX)控件自动注册的两种方法

    尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候,我们通常会通 ...

  5. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  6. asp.net中gridview控件的一些基本使用方法

    [ 转自苏飞博客]共两篇 (1)菜单目录: GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合Gri ...

  7. Dev控件删除按钮的两种方式

    测试版本15.2.10:在Dev控件中删除按钮空间有两种方式:1.鼠标右键出现Delete选项,这种删除是不完全的删除,只是删除了按钮的显示,实际上按钮还是存在于代码中的.2.用键盘上的Delete键 ...

  8. 一、winForm-DataGridView操作——控件绑定事件的两种方法

    在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...

  9. 轻松学习Asp.net中的控件

    C/S 结构,即大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销.目前大多数应用软件 ...

随机推荐

  1. 循序渐进之Spring AOP(5) - 创建切面

    在掌握了可用的增强后,接下来要做的就是精确的描述切点.前面的示例都是指定一个目标类并把增强织入到所有方法中,实际开发显然会有更精细的筛选需求,比如对所有类中名称以test结尾的方法加入监控执行时间,或 ...

  2. css 透明(transparent)

    opacity :  .75;     //standard css3 style for transparency -moz-opacity : .75;        // transparenc ...

  3. Java核心知识点学习----线程中如何创建锁和使用锁 Lock,设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

  4. 单片机TM4C123学习(七):I2C模块(温度传感器)

    I2C(Inter Intergrated Circuit)总线是Philips公司推出的一种用于IC器件之间连接的二线制串行扩展总线,它通过两根信号线(SDA-串行数据线:SCL-串行时钟线)在连接 ...

  5. LoadRunner录制不弹出IE浏览器,event=0

    系统环境:win7,安装了IE.360.firefox.搜狗高速浏览器: 起初刚装完loadrunner11的时候,选了IE进行录制,就是不能打开IE,算了,那就用loadrunner默认的设置,居然 ...

  6. 对CLR基本原理概念&垃圾回收机制的简单理解

    前言,之前有说过C语言的函数&变量的一些基本概念,说得可能不是很好,先也把C#的.里相关的也说下,已成一统. 而说函数变量,其实主要就是GC,而GC又是CLR的主要内容,故就有了此文. CLR ...

  7. BIEE 11g 安装

    1.安装oracle 创建字符集为AL32UTF8的实力MERIT  sys密码merit 创建biee用户 create tablespace biee datafile 'D:\ORADATA\M ...

  8. springMVC框架中,在hib-config.xml配置sqlserver2008数据库连接的代码

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">     ...

  9. MySQL数据库指定字符集

    mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的编 ...

  10. Ext开场布局设计Viewport

    //加载dwr dwr.engine.setAsync(false); //***************************************框架定义部分***************** ...