修改和新增写法差不多,就多了个回填数据,因为修改前需要获取到它本来数据来改,回填之后就获取表单值的值,保存之前判断它和之前的数据是否有冲突就行了。
因为要回填所以要传参数到数据库,如果data不为空就回填数据。
JS回填数据部分:
function openUpdate(academeID) {
//请求修改的数据 并回填
$.post("/SystemManagement/CollegeInfor/selectAcademeById",
{ AcademeID: academeID }, function (data) {
if (data != null) {
//回填表单
$("#UAcademeID").val(data.AcademeID);
$("#UAcademeName").val(data.AcademeName);
$("#UAcademeCode").val(data.AcademeCode);
$('#modalUpdateAcademe').modal('show'); //打开模态框
}else {
layer.alert("参数异常");
}
}, 'json');
}
控制器回填数据部分:
public ActionResult selectAcademeById(int AcademeID){
try {
SYS_Academe academe = (from tbAcademe in myModel.SYS_Academe
where tbAcademe.AcademeID == AcademeID
select tbAcademe).Single();
return Json(academe, JsonRequestBehavior.AllowGet);
} catch (Exception) {
return Json(null, JsonRequestBehavior.AllowGet);
}
}
和新增一样获取到表单值的值,strValIsNotNull是我写的一个公共的方法,数据不为空。然后通过post请求把参数控制器,新增成功了就关闭模态框刷新表格提示。
JS保存部分:
function savaUpdate() {
var AcademeName = $("#UAcademeName").val();
var AcademeCode = $("#UAcademeCode").val();
var AcademeID = $("#UAcademeID").val();
if (strValIsNotNull(AcademeName) && strValIsNotNull(AcademeCode)) {
$.post("/SystemManagement/CollegeInfor/UpdateAcademe", {
AcademeName: AcademeName,
AcademeCode: AcademeCode,
AcademeID: AcademeID,
}, function (data) {
if (data.State) {
$("#modalUpdateAcademe").modal('hide');
tabAcademe.reload();
}
layer.alert(data.Text);
}, "json");
}
else {
layer.alert('请填写完整', { icon: 0 });
}
}
和新增一样判断数据不为空,新增的话判断学院名称和学院代号是否重复就可以了,修改要加多判断ID是否重复,不重复的话就把它保存到数据库,myModel.Entry(sysAcademe).State = EntityState.Modified:把传进来的对象的状态改为修改,然后保存。
控制器保存部分:
public ActionResult UpdateAcademe(SYS_Academe sysAcademe){
ReturnJsonVo returnJson = new ReturnJsonVo();
//判断数据
if (!string.IsNullOrEmpty(sysAcademe.AcademeName)
&& !string.IsNullOrEmpty(sysAcademe.AcademeCode)){
//判断其他的是否有冲突
int outherCount = (from tbAcademe in myModel.SYS_Academe
where tbAcademe.AcademeID != sysAcademe.AcademeID &&
(tbAcademe.AcademeName == sysAcademe.AcademeName.Trim() ||tbAcademe.AcademeCode == sysAcademe.AcademeCode.Trim())
select tbAcademe).Count();
if (outherCount == 0) {
myModel.Entry(sysAcademe).State = EntityState.Modified;//把传进来的对象的状态改为修改
int intR = myModel.SaveChanges();//保存
if (intR > 0) {
returnJson.State = true;
returnJson.Text = "修改成功";
}else {
returnJson.Text = "修改失败";
}
}else {
returnJson.Text = "和其他的学院信息重复!";
}
}else {
returnJson.Text = "数据不完整";
}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}