ASP.NET编辑与更新数据(非GridView控件实现)
Insus.NET在实现《ASP.NET开发,从二层至三层,至面向对象 (5)》http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与更新功能一起演示,留下给网友们自由发挥,但是还是有网友想看看Insus.NET用实现方法。
以前Insus.NET的做法,是在GridView控件中进行。如这篇视频教程《GridView Edit Update Cancel Delete》http://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控件实现)的更多相关文章
- 027. asp.net中数据绑定控件之 GridView控件
GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设 ...
- GridView控件点击单元格如何获取该列的列标题
本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: ...
- ASP.NET中GridView控件删除数据的两种方法
今天在用GridView控件时,发现了一个问题,就是使用GridView控件在删除数据时的问题.接下来我们通过模板列方式和CommandField方式删除某条数据讲解下两者之间的区别. 方式一:通 ...
- asp.net GridView控件的列属性
BoundField 默认的数据绑定类型,通常用于显示普通文本 CheckBoxField 显示布尔类型的数据.绑定数据为TRUE时,复选框数据绑定列为选中状态:绑定数据为FALSE时,则显示未选中状 ...
- Mouse点击之后,复制GridView控件的数据行
本篇是实现用mouse点击GridView控件任意一行,把所点击的数据复制至另一个GridView控件上. 实现大概思路,把所点击的数据行的记录主键找出来,再去过滤数据源. 点击功能,已经实现,可以参 ...
- 点击CheckBox让Gridview控件在编辑与正常状态之间切换
昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckB ...
- 在aspx页动态加载ascx页面内容,给GridView控件绑定数据
在aspx页动态加载ascx页面内容 //加载ascx页面内容Control c1 = this.Page.LoadControl("WebUserControl1.ascx"); ...
- 动态绑数据(GridView控件Header和ItemTemplate)
想了解此篇文章,建议先预习一下<动态变更GridView控件列名>http://www.cnblogs.com/insus/p/3232057.html,因为多少有些关联.不管怎样,它能够 ...
- GridView控件
GridView是ASP.NET 1.x的DataGrid控件的后继者.它提供了同样的基本功能集,同一时候添加�了大量扩展和改进.如前所述,DataGrid(ASP.NET 2.0仍然全然支持)是一个 ...
随机推荐
- TryEnterCriticalSection___Delphi
VOID EnterCriticalSection:非阻塞函数.将当前线程对指定临界区的引用计数减1:在使用计数变为零时,另一等待此临界区的一个线程将被唤醒. BOOL TryEnterCritica ...
- [LintCode] Permutations
http://www.lintcode.com/en/problem/permutations/# Given a list of numbers, return all possible permu ...
- 在线团队协作工具+在线UML工具
话不多说直接上https://worktile.com去看,顺便附上小众软件上面的介绍 默默增加worktile的外国原版https://trello.com/,worktile照着trello做的, ...
- Redis-HA高可用方案Sentinel配置
上一节中介绍了master-slave模式,在最小配置:master.slave各一个节点的情况下,不管是master还是slave down掉一个,“完整的”读/写功能都将受影响,这在生产环境中显然 ...
- 《PHP, MySQL, Javascript和CSS》读书随手记----MySQL篇
一 基础 要求结尾分号 如果在命令输入期间想要终止其运行,不要Ctrl-C. 要输入\c,并按回车键. sql命令和关键字不区分大小写. 表名在windows中不区分大小写,但是在linux和os x ...
- 【BZOJ3280】 小R的烦恼(费用流,建模)
有很浓厚的熟悉感?餐巾计划问题? 不就是多了几个医院,相当于快洗部和慢洗部开了分店. 考虑建图: 如果把每一天拆成两个点,一个表示需求,另一个表示拥有的话. 显然就是一个两边的图,考虑如果我现在有人, ...
- HttpInvokerUtils
package com.sprucetec.tms.utils; import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java ...
- wp推送消息笔记
最近想给应用添加推送消息,主要是toast消息,所以就打算去了解一下wp消息推送机制以及实现方法,过程中,查了许多资料,也遇到过一些问题,做完后,自己就做个小笔记,总结一下,好记性不如烂笔头嘛,以后可 ...
- 关于c++类的一些知识的总结
1.经常会听到“类的声明.类的定义.类的实现”,它们之间有什么不一样? 经过查阅https://www.cnblogs.com/kkshaq/p/4660073.html博客的说法,类的声明是在.h文 ...
- odoo开发笔记 -- 前端开发相关
https://www.cnblogs.com/lyzg/p/5634565.html http://dmyz.org/archives/598 https://www.jianshu.com/p/6 ...