Insus.NET在实现《ASP.NET开发,从二层至三层,至面向对象 (5)http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与更新功能一起演示,留下给网友们自由发挥,但是还是有网友想看看Insus.NET用实现方法。

以前Insus.NET的做法,是在GridView控件中进行。如这篇视频教程《GridView Edit Update Cancel Deletehttp://www.cnblogs.com/insus/archive/2011/01/25/1944295.html

或者这篇《网站是否有播放音乐功能http://www.cnblogs.com/insus/archive/2013/05/09/3066347.html  均可以看到GridView控件的更新功能。

总结以往的经验,觉得编辑或更新GridView控件的记录,用户需要点击多次按钮,才能完成。而且对GridView控件编写的代码也多。因此Insus.NET想直接点击GridView控件某笔记录,然后显示于添加的域中进行更新。

OK,开始来看看:
首先在GridView控件添加一列:

然后在添加按钮后,再添加两个铵钮,一个是更新,一个是取消:
 

这两个铵钮,一开始它的状态是禁用的,可看它们的Enabled=“false”。也就是说网页加载时,这两个铵钮是不可用。
接下来,我们分别实现OnRowCreated="GridViewEmployee_RowCreated",OnClick="ButtonUpdate_Click"和OnClick="ButtonCancel_Click"事件。先实现第一个,点击GridView控件某一笔记录时,希望能获取这笔记录数据。因此需要创建一个新的存储过程,By主键来获取点击当前记录:

有添加了数据库层的存储过程,前一篇写好的Employee.cs也需要添加相应的逻辑方法或是函数。

现在可以写了:

上面有一个事件委托ButtonEdit_Click:

上面程序有几点说明,先是点击编辑之后,获取被点选的的记录主键,然后以主键是获取整笔记录,然后绑定给添加域中去(标记1)。标记2,需要把添加铵钮与绑定主键的文本框禁用。
标记3是Active更新和取消铵钮。

下面是取消铵钮ButtonCancel_Click事件,实际就是初始化控件状态功能:

文本框清空,该禁用的铵钮禁用,该启用的铵钮启用。最后是更新铵钮ButtonUpdate_Click事件:

看到否,取消铵钮与更新事件结束之后,所执行的代码是一样的。因此可以把它们写成一个单独的小方法:

实现完了,看看实时操作演示效果,点击“Edit”铵钮时,它出现了一个异常:
Line: 885
Error: Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.

F9设定中断点,F5debug,然后按F11进行跟踪,跑到下面出现异常了:

细心检查,原来真正的问题,出现在BizBaseSQLSp.cs类库中,函数public DataSet ExecuteDataSet(),下面是修改正确方法:

保存,再次运行:

没有难度,这样的话,设计网页时,可以把添加域与编辑同用,不必浪费在写GridView控件内,还要定义编辑模版。

Insus.NET虽写的不是什么绝世之作,平凡之中能让您从中获取对ASP.NET技术的有所提升与积累,足已。

ASP.NET编辑与更新数据(非GridView控件实现)的更多相关文章

  1. 027. asp.net中数据绑定控件之 GridView控件

    GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设 ...

  2. GridView控件点击单元格如何获取该列的列标题

    本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: ...

  3. ASP.NET中GridView控件删除数据的两种方法

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

  4. asp.net GridView控件的列属性

    BoundField 默认的数据绑定类型,通常用于显示普通文本 CheckBoxField 显示布尔类型的数据.绑定数据为TRUE时,复选框数据绑定列为选中状态:绑定数据为FALSE时,则显示未选中状 ...

  5. Mouse点击之后,复制GridView控件的数据行

    本篇是实现用mouse点击GridView控件任意一行,把所点击的数据复制至另一个GridView控件上. 实现大概思路,把所点击的数据行的记录主键找出来,再去过滤数据源. 点击功能,已经实现,可以参 ...

  6. 点击CheckBox让Gridview控件在编辑与正常状态之间切换

    昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckB ...

  7. 在aspx页动态加载ascx页面内容,给GridView控件绑定数据

    在aspx页动态加载ascx页面内容 //加载ascx页面内容Control c1 = this.Page.LoadControl("WebUserControl1.ascx"); ...

  8. 动态绑数据(GridView控件Header和ItemTemplate)

    想了解此篇文章,建议先预习一下<动态变更GridView控件列名>http://www.cnblogs.com/insus/p/3232057.html,因为多少有些关联.不管怎样,它能够 ...

  9. GridView控件

    GridView是ASP.NET 1.x的DataGrid控件的后继者.它提供了同样的基本功能集,同一时候添加�了大量扩展和改进.如前所述,DataGrid(ASP.NET 2.0仍然全然支持)是一个 ...

随机推荐

  1. 提示 make: 没有什么可以做的为 `all'

    提示 make: 没有什么可以做的为 `all'. make clean 一次,编译过程又有了.

  2. NW.js安装原生node模块node-printer控制打印机

    1.安装原生node模块 #全局安装nw-gyp npm install -g nw-gyp #设置目标NW.js版本 set npm_config_target=0.31.4 #设置构建架构,ia3 ...

  3. Redis-HA高可用方案Sentinel配置

    上一节中介绍了master-slave模式,在最小配置:master.slave各一个节点的情况下,不管是master还是slave down掉一个,“完整的”读/写功能都将受影响,这在生产环境中显然 ...

  4. .net core 部署 docker (CentOS7)

    最近研究 docker 在Linux 下部署 .net core 项目,在过程中踩了很多坑,网上的资料对我帮助确实大,但有些问题未指明出来. 特地整理一份在发布文档 本文使用的是 root 账号操作, ...

  5. ovs QOS

    实验拓扑 拓扑实现脚本 ip netns add ns1 ip netns add ns2 ip netns add ns3 ip netns add ns4 ovs-vsctl add-br br0 ...

  6. Android sharedUserId 和系统权限

    sharedUserId 给不同的应用使用同一个 sharedUserId 可以运行在这几个应用间互相访问数据(数据库,SharedPreferences,文件). sharedUserId 一旦使用 ...

  7. @JsonInclude、@JsonFormat、@DateTimeFormat注解的使用

    @JsonInclude(value=Include.NON_NULL) :用在实体类的方法类的头上  作用是实体类的参数查询到的为null的不显示 @DateTimeFormat:用于接收 前端传的 ...

  8. Redis---SDS(简单动态字符串)

    Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类 ...

  9. Python小白学习之路(二十五)—【装饰器的应用】

    通过一个任务来加深对装饰器的理解和应用 回顾:装饰器的框架 def timmer(func): def wrapper(): func() return wrapper 任务:给以下正在运行的程序加一 ...

  10. 不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关)

    数据库用户信息死活无法修改..老是出现错误当 MUST_CHANGE 为 ON (开)时,不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关). (Micr ...