不說廢話,直接上代碼吧。。。
//定義一個全局變量防止重複提交(百度了一下似乎很多人也遇到類似的問題)
1 var i = ;
//修改
function Update() {
//獲取選中行
var selected = $("#dg1").datagrid('getSelected');
//判斷是否有選中行
if (selected != null) {
//顯示添加窗體
$('.theme-popover-mask').fadeIn();
$('.theme-popover').slideDown();
//初始化窗體內容
$("#title").text("修改信息");
$("#btnAdd").hide();
$("#btnUpdate").show();
$("#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 所以後臺始終更新的就是第一次選中行的數據
$("#username").val(selected.UserName);
$("#username").attr("disabled", "disabled");
$("#username").attr("background-color", "#E0CACA");
$("#password").val(selected.PassWord);
$("input[name='grade'][value=" + selected.Grade + "]").attr("checked", "checked");
$("input[name='state'][value=" + selected.State + "]").attr("checked", "checked");
if (i == ) {
$("#btnUpdate").click(function () {
i++; //點擊按鈕i++ i=0時才能提交 防止重複提交 var model = [];
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") });
var username = $("#username").val();
var password = $("#password").val();
var grade = $("input[name='grade']:checked").val();
var state = $("input[name='state']:checked").val();
var registerdate = new Date();
model.push({ ID: id, Grade: grade, State: state, UserName: username, PassWord: password, RegisterDate: registerdate.format("yyyy-MM-dd hh:mm:ss") });
//ajax异步提交
$.ajax({
type: "post",
cache: false, //禁用緩存
url: "/Admin/Update?time" + (new Date()).getTime(), //也是防止緩存問題
data: { "data": JSON.stringify(model)}, //序列化json格式提交到後臺
success: function (data) {
$('.theme-popover-mask').fadeOut();
$('.theme-popover').slideUp();
if (data == ) {
ds.dialog({
title: '溫馨提示',
content: '恭喜你,修改成功!',
icon: '../../images/dsdialog/success.png'
});
}
else {
ds.dialog({
title: '溫馨提示',
content: '修改失敗!',
icon: '../../images/dsdialog/info.png'
});
}
//重新加载datagrid
$("#dg1").datagrid('reload');
}
});
//end ajax
//$.post("/Admin/Update?time" + (new Date()).getTime(), {"data": JSON.stringify(model) }, function (data) {
//$('.theme-popover-mask').fadeOut(100);
//$('.theme-popover').slideUp(200);
//if (data == 1) {
// ds.dialog({
// title: '溫馨提示',
// content: '恭喜你,修改成功!',
// icon: '../../images/dsdialog/success.png'
// });
// }
//else{
// ds.dialog({
// title: '溫馨提示',
// content: '修改失敗!',
// icon: '../../images/dsdialog/info.png'
// });
//}
//$("#dg1").datagrid('reload');
//});
}); //end click
}
}
else {
ds.dialog({
title: '溫馨提示',
content: '請選擇要修改的行!',
icon: '../../images/dsdialog/info.png'
});
}
}
//删除
function Delete() {
var selected = $("#dg1").datagrid('getSelected');
if (selected != null) {
ds.dialog({
title: '溫馨提示',
content: '你確定要刪除該用戶嗎?',
icon: '../../images/dsdialog/question.png',
yesText: '確定',
onyes: function () {
//可是刪除的時候 這樣是沒問題的 因為刪除了上一次選中的行就沒有了 所以不會出現Update時的問題 當然添加的時候也不會出現這種問題的 可是我先做的就是刪除方法 所以沒想到這些 哈哈 是不是很蛋疼了。。。
$.post("/Admin/Delete", { "Id": selected.ID }, function (data) {
if (data == ) {
ds.dialog({
title: '溫馨提示',
content: '恭喜你,刪除成功!',
icon: '../../images/dsdialog/success.png'
});
}
else {
ds.dialog({
title: '溫馨提示',
content: '刪除失敗!',
icon: '../../images/dsdialog/info.png'
});
}
$("#dg1").datagrid('reload');
});
},
noTest: '取消',
onno: function () {
this.close();
}
});
}
else {
ds.dialog({
title: '溫馨提示',
content: '請選擇要刪除的行!',
icon: '../../images/dsdialog/info.png'
});
}
}
//格式化日期
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + , //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + ) / ), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) format = format.replace(RegExp.$, (this.getFullYear() + "").substr( - RegExp.$.length));
for (var k in o) if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$, RegExp.$.length == ? o[k] : ("" + o[k]).substr(("" + o[k]).length));
return format;
}
生命不息,代碼不止...