jQurey代码部分:

1.    <script type="text/javascript">

2.            var flag = 0;

3.

4.            //添加新行

5.            function addRow() {

6.                var nrow = "<tr><td><input name='hideid' type='hidden' value='' /><input name='username' type='text' value='' size='15' maxlength='15'  /></td><td><select name='seltype' id=seltype1><option value='Text'>文本框</option><option value='textarea'>多行文本区</option><option value='Select'>下拉框</option><option value='Radio'>单选框</option><option value='Checkbox'>复选框</option></select></td><td><span class='heb' name='buttonspan'><input  value='添加' onclick='addData(this)' type='button'  class='se_buton'/>&nbsp;<input  value='取消' type='button' onclick='deleteNewRow(this)' class='se_buton'/></span></td></tr>";

7.                if (flag == 0) {

8.                    $('#attributetable').append(nrow);

9.                    flag = 1;

10.               }

11.           }

12.

13.           //添加新行中的数据到后台

14.           function addData(obj) {

15.

16.

17.               var trobj = $(obj).parents('tr');

18.               var username = $(trobj).find(':text[name=username]').val();

19.               var seltype = $(trobj).find('select[name=seltype]').val();

20.

21.               $.post("SupplyAJAX.aspx", { username: username, seltype: seltype, type: "add" }, function (data) {

22.                   if (data.toString() != "0") {

23.                       $(trobj).find(':hidden[name=hideid]').val(data.toString());

24.                       changeDisable(obj, 0);

25.                   }

26.                   else {

27.                       deleteNewRow(obj);

28.                       alert('添加失败');

29.                   }

30.               });

31.               flag = 0;

32.           }

33.

34.           //更新行

35.           function updData(obj) {

36.

37.

38.               var trobj = $(obj).parents('tr');

39.               var id = $(trobj).find(':hidden[name=hideid]').val();

40.               var username = $(trobj).find(':text[name=usrname]').val();

41.

42.               var seltype = $(trobj).find('select[name=seltype]').val();

43.               $.post("SupplyAJAX.aspx", { id: id, username: username, seltype: seltype, type: "update" },

44.               function (data) {

45.

46.                   if (data.toString() != "0") {

47.                       changeDisable(obj, 0);

48.                   }

49.                   else {

50.                       alert('更新失败');

51.                   }

52.               });

53.           }

54.           //删除新行

55.           function deleteNewRow(obj) {

56.               $(obj).parents('tr').replaceWith('');

57.               flag = 0;

58.           }

59.           //删除数据库中的行

60.           function deleteRow(obj) {

61.               var trobj = $(obj).parents('tr');

62.               var id = $(trobj).find(':hidden[name=hideid]').val();

63.               $.post("SupplyAJAX.aspx", { id: id, type: "delete" },

64.               function (data) {

65.                   if (data.toString() != "0") {

66.                       $(obj).parents('tr').replaceWith('');

67.                   }

68.                   else {

69.                       alert('删除失败');

70.                   }

71.               });

72.           }

73.

74.           //改变编辑状态

75.           function changeDisable(obj, type) {

76.               var trobj = $(obj).parents('tr');

77.               if (type == 0) {

78.                   $(trobj).find(':text').attr('disabled', 'disabled');

79.                   $(trobj).find('select').attr('disabled', 'disabled');

80.                   $(trobj).find('span[name=buttonspan]').html("<input name='gx' value='更新' type='button' onclick='changeDisable(this,1)'  class='se_buton'/>&nbsp;<input value='删除' type='button' name='qx' onclick='deleteRow(this)'  class='se_buton' />");

81.               }

82.               if (type == 1) {

83.                   $(trobj).find(':text').attr('disabled', '');

84.                   $(trobj).find('select').attr('disabled', '');

85.                   $(trobj).find('span[name=buttonspan]').html("<input name='gx' value='确定' type='button' onclick='updData(this)'  class='se_buton'/>&nbsp;<input value='取消' type='button' name='qx' onclick='changeDisable(this,0)'  class='se_buton' />");

86.               }

87.           }

88.       </script>

HTML代码部分:

1.    <body>

2.

3.    <table id="attributetable">

4.    </table>

5.      <div class=" heb"><input value="增加一行" type="button" onclick='addRow()' class="se_buton"/> </div>

6.    </body>

SupplyAJAX类

1.

2.    public partial class SupplyAJAX : System.Web.UI.Page

3.    {

4.        static List<UserModel> UmList = new List<UserModel>();

5.

6.        protected void Page_Load(object sender, EventArgs e)

7.        {

8.            switch (Request.QueryString["type"])

9.            {

10.               case "add":

11.                   Add();

12.                   break;

13.               case "update":

14.                   Update();

15.                   break;

16.               case "delete":

17.                   Delete();

18.                   break;

19.           }

20.           Response.End();

21.       }

22.

23.       private string Add()

24.       {

25.           UserModel um = new UserModel();

26.           um.Id = UmList.Count + 1; //自动为ID加1

27.           um.Username = Request.Form["username"];

28.           um.Seltype = Request.Form["seltype"];

29.           UmList.Add(um);

30.           return um.Id.ToString();

31.       }

32.

33.       private string Update()

34.       {

35.           int id = int.Parse(Request.QueryString["id"]);

36.           for (int i = 0; i < UmList.Count; i++)

37.           {

38.               if (id == UmList[i].Id)

39.               {

40.                   UmList[i].Username = Request.Form["username"];

41.                   UmList[i].Seltype = Request.Form["seltype"];

42.                   return UmList[i].Id.ToString();

43.               }

44.           }

45.           return "0";

46.       }

47.

48.       private string Delete()

49.       {

50.           int id = int.Parse(Request.Form["id"]);

51.           for (int i = 0; i < UmList.Count; i++)

52.           {

53.               if (id == UmList[i].Id)

54.               {

55.                   UmList.Remove(UmList[i]);

56.                   return UmList[i].Id.ToString();

57.               }

58.           }

59.           return "0";

60.       }

61.

62.   }

通过AJAX与ASP.NET结合实现的仿GridView增删改查功能的更多相关文章

  1. 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计

    在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...

  2. ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...

  3. [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...

  4. 在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建

    通常,在同一个页面上实现增删改查,会通过弹出框实现异步的添加和修改,这很好.但有些时候,是不希望在页面上弹出框的,我们可能会想到Knockoutjs,它能以MVVM模式实现同一个页面上的增删改查,再辅 ...

  5. ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)

    这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 这里是该项目的第二部分, 第一部分 第二部分(当前部分) 大完结版本 此Demo是新建了一个音乐类型的web,然后使用母版页 ...

  6. ASP.net+SQL server2008简单的数据库增删改查 VS2012

    工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...

  7. (菜鸟要飞系列)三,基于Asp.Net MVC5的后台管理系统(用户的增删改查功能)

    这些天被项目,考试整昏了头脑,没时间更新,我已经将这一部分全部做完了,现在把代码放上来,大家可以自己研究,有问题可以私聊,这里把图放上来 http://download.csdn.net/detail ...

  8. asp.net mvc中用angularJs写的增删改查的demo。初学者,求指点。。

    直接给个代码下载链接.... http://pan.baidu.com/s/1FfVgq 本人刚刚学习angularJs,感觉双向数据绑定蛮爽的... 之前的代码存在点问题,已修复

  9. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

随机推荐

  1. 3243: [Noi2013]向量内积 - BZOJ

    Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知 ...

  2. mysql数据恢复

    [1] 当数据库被删除后的恢复方法   首先建立一个测试用的数据库.  mysql -u root -p123123   ← 用root登录到MySQL服务器  Enter password:  ←  ...

  3. shell uniq sort -u 去重排序

    sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢? $ cat test jason jason jason fffff jason 下面分别执行三个命令 :sort ...

  4. angular入门系列教程2

    主题: 本篇主要介绍下angular里的一些概念,并且在咱们的小应用上加上点料.. 概念(大概了解即可,代码中遇到的会有详细注释): 模板:动态模板,是动态的,直接去处理DOM的,而不是通过处理字符串 ...

  5. 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  6. C# 生成MD5编码方法(不同位数)

    /// <summary>          /// </summary>          /// <param name="strSource"& ...

  7. iOS开发之深入探讨runtime机制01-类与对象

    最近有个同事问我关于“runtime机制”的问题,我想可能很多人对这个都不是太清楚,在这里,和大家分享一下我对于runtime机制的理解.要深入理解runtime,首先要从最基本的类与对象开始,本文将 ...

  8. Windows 进程通信 之 DDE技术

    DDE (Dynamic Data Exchange,DDE)动态数据交换,是一种进程间通信机制,它最早是随着Windows由微软提出的.当前大部分软件仍旧支持DDE,但最近十年里微软已经停止发展DD ...

  9. SystemInfo.deviceUniqueIdentifier 返回机器码

    SystemInfo.deviceUniqueIdentifier 返回机器码

  10. java基础知识回顾之java Thread类学习(七)--java多线程安全问题(死锁)

    死锁:是两个或者两个以上的线程被无限的阻塞,线程之间互相等待所需资源. 线程死锁产生的条件: 当两个线程相互调用Join()方法. 当两个线程使用嵌套的同步代码块的时候,一个线程占用了另一个线程的锁, ...