zoukankan      html  css  js  c++  java
  • 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 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技术的有所提升与积累,足已。

  • 相关阅读:
    元素查找
    寂寞的堆
    爱丽丝·玛格特罗依德
    排序的代价
    数字串
    我心永恒
    滑动窗口
    魔法猪学院
    曦皓的幸运数
    曦皓的旅游
  • 原文地址:https://www.cnblogs.com/insus/p/3885001.html
Copyright © 2011-2022 走看看