通过AJAX与ASP.NET结合实现的仿GridView增删改查功能
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'/> <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'/> <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'/> <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增删改查功能的更多相关文章
- 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计
在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...
- ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...
- [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...
- 在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建
通常,在同一个页面上实现增删改查,会通过弹出框实现异步的添加和修改,这很好.但有些时候,是不希望在页面上弹出框的,我们可能会想到Knockoutjs,它能以MVVM模式实现同一个页面上的增删改查,再辅 ...
- ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)
这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 这里是该项目的第二部分, 第一部分 第二部分(当前部分) 大完结版本 此Demo是新建了一个音乐类型的web,然后使用母版页 ...
- ASP.net+SQL server2008简单的数据库增删改查 VS2012
工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...
- (菜鸟要飞系列)三,基于Asp.Net MVC5的后台管理系统(用户的增删改查功能)
这些天被项目,考试整昏了头脑,没时间更新,我已经将这一部分全部做完了,现在把代码放上来,大家可以自己研究,有问题可以私聊,这里把图放上来 http://download.csdn.net/detail ...
- asp.net mvc中用angularJs写的增删改查的demo。初学者,求指点。。
直接给个代码下载链接.... http://pan.baidu.com/s/1FfVgq 本人刚刚学习angularJs,感觉双向数据绑定蛮爽的... 之前的代码存在点问题,已修复
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
随机推荐
- javascript基础之客户端事件驱动
我们知道,面向对象发展起来后,“一夜之间”,几乎所有的语言都能基于对象了,JavaScript也是基于对象的语言.用户在浏览器上的行为称作“事件”,之后引发的一系列动作,比如弹窗啦,改变浏览器大小啦, ...
- 团队项目-smart原则
Smart原则 Specific ——明确性 所谓明确就是要用具体的语言清楚地说明要达成的行为标准.明确的目标几乎是所有成功团队的一致特点.很多团队不成功的重要原因之一就因为目标定的模棱两可,或没有将 ...
- 1021 玛丽卡 - Wikioi
题目描述 Description麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知 ...
- 【WCF--初入江湖】03 配置服务
03 配置服务 数据库 生成数据库脚本: CREATE DATABASE [EmployeeDb]; CREATE TABLE [dbo].[T_Employee]( [Id] [,) NOT NUL ...
- 【WCF--初入江湖】01 WCF编程概述
01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的 环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...
- ASP.NET WebAPI2 发布之后404 Note Found
方法一:首先确保服务器安装.Net FrameWork 4.0 并且注册IIS 如果先安装.net framework4.0,再安装IIS,则会出现4.0的ISAPI没有注册的情况. 运行:C:\Wi ...
- wordpress数据库优化-关闭日志修订
每次在wordpress网站修改文章的时候都会产生一个修订版本,wp_posts会产生一个post_type为“REVISIONS”的记录,修改次数一多的话,那修订版本就有几万条记录了 在functi ...
- Unity3D IOS IPhone添加Admob的方法
原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140403119293/ 首先阅读官方文档https://developers. ...
- PHP7 扩展之自动化测试
在安装 PHP7 及各种扩展的过程中,如果你是用源码安装,会注意到在 make 成功之后总会有一句提示:Don't forget to run 'make test'. 这个 make test 就是 ...
- 【C++基础】 类中static private public protected
静态成员在一个类的所有实例间共享数据 “类属性”,是描述类的所有对象共同特征的一个数据项,对所有对象,它的值相同,static定义,为整个类所共有.相对于“实例属性” 如果static成员是私有类型, ...