引入EasyUi所有需要的脚本,样式
<link href="/easyui/themes/default/easyui.css" rel="stylesheet" /> <link href="/easyui/themes/icon.css" rel="stylesheet" /> <script src="/easyui/jquery.min.js"></script> <script src="/easyui/jquery.easyui.min.js"></script> <script src="/easyui/locale/easyui-lang-zh_CN.js"></script>
JS脚本部分
1 <script type="text/javascript">
2 $(function () {
3 obj = {
4 editRow: undefined,
5 add: function () {
6
7 $('#save,#redo').show();
8 if (this.editRow == undefined)
9 {
10 /*appenRow 在末尾添加一行*/
11 $('#box').datagrid('insertRow', {
12 index: 0,
13 row: {
14 cityname: '',
15 intro: '',
16 code: '',
17 }
18 });
19 //将第一行设置为可编辑状态
20 $("#box").datagrid('beginEdit', 0),
21 this.editRow =0 ;
22
23 }
24 },
25
26 edit:function()
27 {
28 var rows = $('#box').datagrid('getSelections');
29 if (rows.length == 1) {
30 if (this.editRow != undefined) {
31
32 $("#box").datagrid('endEdit', this.editRow)
33
34 }
35 if (this.editRow == undefined) {
36 var index=$("#box").datagrid('getRowIndex',rows[0])
37 $('#save,#redo').show();
38 $("#box").datagrid('beginEdit', index)
39 this.editRow = index
40 //关闭当前行编辑状态
41 $("#box").datagrid('unselectRow',index)
42 }
43 }
44 else {
45 $.messager.alert('警告', '修改只能选中一行','warning');
46 }
47
48 },
49 /*删除*/
50 remove:function()
51 {
52 var rows = $('#box').datagrid('getSelections');
53 if (rows.length > 0) {
54 $.messager.confirm('确定操作', '您确定要删除所选中的记录吗', function (flag) {
55 if (flag)
56 {
57 var ids = [];
58 for (var i = 0; i < rows.length; i++)
59 {
60 ids.push(rows[i].cid);
61 }
62 $.ajax(
63 {
64 url: "/cityManager/cityRemove",
65 data:{"ids":ids.join(',')},
66 type: "post",
67 success: function (data)
68 {
69 if (data.Message == "Success")
70 {
71 $("#box").datagrid("loaded");
72 $("#box").datagrid("load");
73 $("#box").datagrid("unselectAll");
74 $.messager.show({
75 title: '提示',
76 msg:data.flag+'个信息被删除成功!',
77 })
78 }
79 },
80 error: function (data)
81 {
82 $.messager.alert(data);
83 }
84 });
85 obj.editRow = undefined;
86 }
87 }
88 )
89 }
90 else {
91 $.messager.alert('警告','请选中一行或多行','info')
92
93 }
94 },
95 save: function ()
96 {
97 //这两句不应该放这里,应该是保存之后放这里
98 //$('#save,#redo').hide();
99 //this.editRow = false;
100 //将第一行设置为结束编辑
101 //保存当前行的数据结束编辑
102 $("#box").datagrid('endEdit', this.editRow)
103
104 },
105 redo: function ()
106 {
107 $('#save,#redo').hide();
108 this.editRow = undefined;
109 /*回滚所有从创建或上一次调用acceptChanges函数后更该的数据*/
110 $("#box").datagrid('rejectChanges')
111 }
112 };
113 /*加载表格*/
114 $("#box").datagrid({
115 url: '/cityManager/cityQuery',
116 singleSelect: false,//多选
117 pagination: true,//分页
118 pageSize: 10,//页面大小
119 pageList: [5, 10, 15, 20, 30, 50, 80, 200],
120 rownumbers:true,//编号
121 title: "城市信息",
122 //右击表格事件
123 onRowContextMenu:function(e,rowIndex,rowData)
124 {
125 /*去掉默认的右击的面板*/
126 e.preventDefault();
127 /*显示Menu锁定位置*/
128 $('#menu').menu('show', {
129 left: e.pageX,
130 top: e.pageY,
131
132 })
133 },
134
135 //双击选中行执行的事件(索引行,数据)
136 onDblClickRow: function (rowIndex, rowData) {
137 //将上一次编辑行关闭并且保存
138 if (obj.editRow!=undefined) {
139 $("#box").datagrid('endEdit', obj.editRow);
140
141 }
142 if (obj.editRow == undefined) {
143 $('#save,#redo').show();
144 $("#box").datagrid('beginEdit', rowIndex);
145 obj.editRow = rowIndex;
146 }
147 },
148
149 //编辑结束后事件 *添加和跟新的操作在这了*/
150 onAfterEdit:function(rowIndex,rowDate,changes)
151 {
152 var url = '';
153 var info = '';
154 /*从上一次的提交获取所有行,类型参数有,inserted,deleted,updated
155 返回的一个数组 */
156 var inserted = $("#box").datagrid('getChanges', 'inserted');
157 var updated = $("#box").datagrid('getChanges', 'updated');
158 /*添加*/
159 if (inserted.length> 0)
160 {
161 url = '/cityManager/addCity';
162 info = '添加';
163 }
164 /*更新*/
165 if (updated.length > 0)
166 {
167 url = '/cityManager/EditCity';
168 var info = '更新';
169 }
170 $.ajax(
171 {
172 url: url,
173 data: rowDate,
174 type: "post",
175 success: function (data) {
176 if (data.Message == "Success") {
177 $("#box").datagrid("loaded");//重新加载
178 $("#box").datagrid("load");//加载
179 $("#box").datagrid("unselectAll");//去掉所有复选框
180 $.messager.show({
181 title: '提示',
182 msg: data.flag + '个信息被"'+info+'"成功!',
183 })
184 }
185 },
186 error: function (data) {
187 $.messager.alert(data);
188 }
189 });
190 $('#save,#redo').hide();
191 obj.editRow = undefined;//将对象重新赋值为undefined
192 },
193 columns: [[
194 {
195 field: "cid",
196 title: "编号",
197 align: 'center',
198 width: 300,
199 checkbox:true
200 },
201 {
202 field: "cityname",
203 title: "城市名称",
204 // hidden: true 隐藏列
205 align: 'center',
206 width: 300,
207 editor: {
208 type: 'validatebox',
209 options: {
210 required:true,
211 }
212 }
213 },
214 {
215 field: "intro",
216 title: "介绍",
217 align: 'center',
218 width: 100,
219 editor: { //设置为编辑行
220 type: 'validatebox',
221 options: {
222 required: true,
223 }
224 }
225 },
226 {
227 field: "code",
228 title: "代码",
229 align: 'center',
230 width: 100,
231 editor: { //
232 type: 'validatebox',
233 options: {
234 required: true,
235 }
236 }
237 },
238 {
239 field: "createtime",
240 title: "创建时间",
241 align: 'center',
242 width: 100,
243 editor: { //
244 type: 'datetimebox',
245 options: {
246 required: true,
247 }
248 }
249 },
250 ]],
251 toolbar: "#tb",
252 })
253 })
254 </script>
View Code
HTML部分
1 <table id="box"> </table> 2 <div id="tb" style="padding:5px;height:auto"> 3 <div style="margin-bottom:5px"> 4 <a href="#" class="easyui-linkbutton" onclick="obj.add();" iconcls="icon-add" plain="true">添加</a> 5 <a href="#" class="easyui-linkbutton" onclick="obj.edit();" iconcls="icon-edit" plain="true">修改</a> 6 <a href="#" class="easyui-linkbutton" onclick="obj.remove();" iconcls="icon-remove" plain="true">删除</a> 7 <a href="#" class="easyui-linkbutton" iconcls="icon-save" style="display:none" id="save" onclick="obj.save()" plain="true">保存</a> 8 <a href="#" class="easyui-linkbutton" iconcls="icon-redo" style="display:none" id="redo" onclick="obj.redo()" plain="true">取消编辑</a> 9 </div> 10 </div> 11 <div id="menu" class="easyui-menu" style="width:100px;display:none"> 12 <div onclick="obj.add();" iconcls="icon-add" plain="true">添加</div> 13 <div onclick="obj.edit();" iconcls="icon-edit" plain="true">修改</div> 14 <div onclick="obj.remove();" iconcls="icon-remove" plain="true">删除</div> 15 </div>
View Code
后台.NetMVC代码
1 /*查询*/
2 public ActionResult cityQuery()
3 {
4 //获取分页的页数
5 int pageNum = Convert.ToInt32(Request.Params["page"]);
6 //获取分页大小
7 int pageSize = Convert.ToInt32(Request.Params["rows"]);
8 var CityList = (from u in db.tb_city
9 orderby u.cid descending
10 where(u.isdelete==0)
11 select u).Skip(pageSize * (pageNum - 1)).Take(pageSize);
12 // using Newtonsoft.Json 序列化转成Json字符串
13 var jsons = JsonConvert.SerializeObject(CityList);
14
15 string json = "{\"total\":" + db.tb_city.ToList().Count + ",\"rows\": " + jsons + "}";
16 return Content(json);
17 }
18 /*删除*/
19 public ActionResult cityRemove()
20 {
21
22 Hashtable ht = new Hashtable();
23 string[] ids = ConvertHelper.GetString(Request["ids"]).Split(',');
24 int flag = 0;
25 foreach (var item in ids)
26 {
27 tb_city model = db.tb_city.Find(ConvertHelper.GetInteger(item));
28 model.isdelete =1;
29 TryUpdateModel(model);
30 db.SaveChanges();
31 flag++;
32 }
33 if (flag > 0)
34 {
35 ht["Message"] = "Success";
36 ht["flag"] = flag;
37 ht["Resulet"] = true;
38 }
39 else
40 {
41 ht["Message"] = "Error";
42 ht["Resulet"] = false;
43 }
44
45
46 return Json(ht);
47
48 }
49 /*添加*/
50 public ActionResult addCity()
51 {
52 Hashtable ht = new Hashtable();
53 string cityname = ConvertHelper.GetString(Request["cityname"]);
54 string code = ConvertHelper.GetString(Request["code"]);
55 string intro = ConvertHelper.GetString(Request["cityname"]);
56 tb_city model = new tb_city();
57 model.cityname = cityname;
58 model.code = code;
59 model.intro = intro;
60 model.isdelete = 0;
61 db.tb_city.Add(model);
62 int flag= db.SaveChanges();
63
64
65 if (flag > 0)
66 {
67 ht["Message"] = "Success";
68 ht["flag"] = flag;
69 ht["Resulet"] = true;
70 }
71 else
72 {
73 ht["Message"] = "Error";
74 ht["Resulet"] = false;
75 }
76 return Json(ht);
77
78 }
79
80 /*修改*/
81 public ActionResult EditCity()
82 {
83 Hashtable ht = new Hashtable();
84 string id = ConvertHelper.GetString(Request["cid"]);
85 string cityname = ConvertHelper.GetString(Request["cityname"]);
86 string code = ConvertHelper.GetString(Request["code"]);
87 string intro = ConvertHelper.GetString(Request["cityname"]);
88 string user = ConvertHelper.GetString(Request["cityname"]);
89 tb_city model = db.tb_city.Find(ConvertHelper.GetInteger(id));
90 model.cityname = cityname;
91 model.code = code;
92 model.intro = intro;
93 model.isdelete = 0;
94 TryUpdateModel(model);
95 int flag= db.SaveChanges();
96
97
98 if (flag > 0)
99 {
100 ht["Message"] = "Success";
101 ht["flag"] = flag;
102 ht["Resulet"] = true;
103 }
104 else
105 {
106 ht["Message"] = "Error";
107 ht["Resulet"] = false;
108 }
109 return Json(ht);
110
111 }
View Code
运行后的效果
总结:主要是用到了EasyUIDatagrid中 ,编辑结束后事件onAfterEdit,添加和更新在这里编写(从上一次的提交获取所有行,类型参数有,inserted,deleted,updated 返回的一个数组编辑后的数据)
var inserted = $(“#box”).datagrid(‘getChanges’, ‘inserted’);
var updated = $(“#box”).datagrid(‘getChanges’, ‘updated’);