在网格视图中就地编辑

时间:2019-03-14 10:27:37

标签: c# jquery json model-view-controller

问题是我想在不刷新页面的情况下编辑表中的单元格,所以我决定将JSON与jQuery一起使用,并且使用了jeditable插件。但是,在添加代码之后,我发现当我删除单元格并在其中重写任何值时,它都工作得很好,并且将值保存在数据库中,但是问题是当我不删除值并将其添加到其中时字母或任何文本,它将保存旧值而没有新文本,因此我不知道这是什么问题。我已经附上了代码C#和jQuery。

$(document).ready(function() {

    var oldValue = '';
    var submitdata = {}

    submitdata['fast'] = true;
    submitdata['pwet'] = 'youpla';

    $(".edit").editable("/ShiftTypes/saveuser", {

        type: "text",

        onedit: function() {
            return true;
        },


        cancel: 'Cancel',
        cssclass: 'custom-class',
        cancelcssclass: 'btn btn-danger',
        submitcssclass: 'btn btn-success',
        maxlength: 200,
        // select all text
        select: true,
        label: 'This is a label',
        onreset: function() {},
        onsubmit: function() {},
        showfn: function(elem) {
            elem.fadeIn('fast')
        },
        submit: 'Save',
        onsubmit: function(settings, original) {
            oldValue = original.revert;
            //Swal.fire({
            //    position: 'top',
            //    type: 'success',
            //    title: 'Your work has been saved',
            //    showConfirmButton: false,
            //    timer: 1500
            //});

        },


        before: function() {},
        callback: function(value, settings) {
            var jsonData = $.parseJSON(value);
            if (jsonData.status) {
                $(this).text(jsonData.value);

            } else {
                $(this).text(oldValue);
            }
        },
        submitdata: function() {
            return {
                id: $(this).data('id'),
                PropertyName: $(this).data('propertyname')
            }
        },
        /* submitdata as a function example
        submitdata : function(revert, settings, submitdata) {
            console.log("Revert text: " + revert);
            console.log(settings);
            console.log("User submitted text: " + submitdata.value);
        },
        */
        tooltip: "Click to edit...",
        width: 160
    });


})

C#的代码[ShiftTypesController / saveuser]:

[HttpPost]
public ActionResult saveuser(int id, string propertyName, string value) {
 var status = false;
 var message = "";

 //Update data to database 

 using(PaediatricDBEntities db = new PaediatricDBEntities()) {
  var user = db.ShiftTypes.Find(id);
  if (user != null) {
   db.Entry(user).Property(propertyName).CurrentValue = value;
   db.SaveChanges();
   status = true;
  } else {
   message = "Error!";
  }
 }

 var response = new {
  value = value, status = status, message = message
 };
 JObject o = JObject.FromObject(response);
 return Content(o.ToString());
}

0 个答案:

没有答案