不說廢話,直接上代碼吧。。。 //定義一個全局變量防止重複提交(百度了一下似乎很多人也遇到類似的問題) 1 var i = 0; 2 //修改 3 function Update() { 4 //獲取選中行 5 var selected = $("#dg1").datagrid('getSelected'); //判斷是否有選中行 6 if (selected != null) { 7 //顯示添加窗體 8 $('.theme-popover-mask').fadeIn(100); 9 $('.theme-popover').slideDown(200);10 //初始化窗體內容11 $("#title").text("修改信息");12 $("#btnAdd").hide();13 $("#btnUpdate").show();14 $("#id").val(selected.ID); //問題就出在這裡 開始沒有用將選中行的ID賦值給hidden 開始一直以為是緩存的問題 而是直接寫的 model.push({ ID:selected.ID, Grade: grade, State: state, UserName: username, PassWord: password, RegisterDate: registerdate.format("yyyy-MM-dd hh:mm:ss") }); 這樣的話取的ID就是第一次選中行的ID 所以後臺始終更新的就是第一次選中行的數據15 $("#username").val(selected.UserName);16 $("#username").attr("disabled", "disabled");17 $("#username").attr("background-color", "#E0CACA");18 $("#password").val(selected.PassWord);19 $("input[name='grade'][value=" + selected.Grade + "]").attr("checked", "checked");20 $("input[name='state'][value=" + selected.State + "]").attr("checked", "checked");21 if (i == 0) {22 $("#btnUpdate").click(function () {23 i++; //點擊按鈕i++ i=0時才能提交 防止重複提交 24 var model = [];25 var id = $("#id").val(); //再將hidden的值取出來賦值給id 這樣就沒有上面的問題了 我也是很鬱悶其實本質上沒區別的。。。 可就是取的值不一樣 model.push({ ID: id, Grade: grade, State: state, UserName: username, PassWord: password, RegisterDate: registerdate.format("yyyy-MM-dd hh:mm:ss") });26 var username = $("#username").val();27 var password = $("#password").val();28 var grade = $("input[name='grade']:checked").val();29 var state = $("input[name='state']:checked").val();30 var registerdate = new Date();31 model.push({ ID: id, Grade: grade, State: state, UserName: username, PassWord: password, RegisterDate: registerdate.format("yyyy-MM-dd hh:mm:ss") });32 //Ajax异步提交33 $.ajax({34 type: "post",35 cache: false, //禁用緩存 37 url: "/Admin/Update?time" + (new Date()).getTime(), //也是防止緩存問題 38 data: { "data": JSON.stringify(model)}, //序列化json格式提交到後臺39 success: function (data) {40 $('.theme-popover-mask').fadeOut(100);41 $('.theme-popover').slideUp(200);42 if (data == 1) {43 ds.dialog({44 title: '溫馨提示',45 content: '恭喜你,修改成功!',46 icon: '../../images/dsdialog/success.png'47 });48 }49 else {50 ds.dialog({51 title: '溫馨提示',52 content: '修改失敗!',53 icon: '../../images/dsdialog/info.png'54 });55 }56 //重新加载datagrid57 $("#dg1").datagrid('reload');58 }59 }); //end ajax60 //$.post("/Admin/Update?time" + (new Date()).getTime(), {"data": JSON.stringify(model) }, function (data) {61 //$('.theme-popover-mask').fadeOut(100);62 //$('.theme-popover').slideUp(200);63 //if (data == 1) {64 // ds.dialog({65 // title: '溫馨提示',66 // content: '恭喜你,修改成功!',67 // icon: '../../images/dsdialog/success.png'68 // });69 // }70 //else{71 // ds.dialog({72 // title: '溫馨提示',73 // content: '修改失敗!',74 // icon: '../../images/dsdialog/info.png'75 // });76 //}77 //$("#dg1").datagrid('reload');78 //});79 }); //end click80 }81 }82 else {83 ds.dialog({84 title: '溫馨提示',85 content: '請選擇要修改的行!',86 icon: '../../images/dsdialog/info.png'87 });88 }89 }
1 //删除 2 function Delete() { 3 var selected = $("#dg1").datagrid('getSelected'); 4 if (selected != null) { 5 ds.dialog({ 6 title: '溫馨提示', 7 content: '你確定要刪除該用戶嗎?', 8 icon: '../../images/dsdialog/question.png', 9 yesText: '確定',10 onyes: function () { //可是刪除的時候 這樣是沒問題的 因為刪除了上一次選中的行就沒有了 所以不會出現Update時的問題 當然添加的時候也不會出現這種問題的 可是我先做的就是刪除方法 所以沒想到這些 哈哈 是不是很蛋疼了。。。11 $.post("/Admin/Delete", { "Id": selected.ID }, function (data) {12 if (data == 1) {13 ds.dialog({14 title: '溫馨提示',15 content: '恭喜你,刪除成功!',16 icon: '../../images/dsdialog/success.png'17 });18 }19 else {20 ds.dialog({21 title: '溫馨提示',22 content: '刪除失敗!',23 icon: '../../images/dsdialog/info.png'24 });25 }26 $("#dg1").datagrid('reload');27 });28 },29 noTest: '取消',30 onno: function () {31 this.close();32 }33 });34 }35 else {36 ds.dialog({37 title: '溫馨提示',38 content: '請選擇要刪除的行!',39 icon: '../../images/dsdialog/info.png'40 });41 }42 }
1 //格式化日期 2 Date.PRototype.format = function (format) { 3 var o = { 4 "M+": this.getMonth() + 1, //month 5 "d+": this.getDate(), //day 6 "h+": this.getHours(), //hour 7 "m+": this.getMinutes(), //minute 8 "s+": this.getSeconds(), //second 9 "q+": Math.floor((this.getMonth() + 3) / 3), //quarter10 "S": this.getMilliseconds() //millisecond11 }12 if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));13 for (var k in o) if (new RegExp("(" + k + ")").test(format))14 format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));15 return format;16 }
生命不息,代碼不止...
新闻热点
疑难解答