【问题标题】:how to close a add new record popup wndow in jquery jtable on saving in mvc?如何在保存在mvc中时关闭jquery jtable中的添加新记录弹出窗口?
【发布时间】:2014-07-30 18:28:45
【问题描述】:

我在我的 CRUD 应用程序中使用了 jQuery 的 jTable 插件。我的问题是,当我单击“添加新记录”时,会出现一个确认对话框,但是在填写详细信息并单击“保存”按钮后,该对话框不会消失,但是在我刷新 Jtable 时会添加数据..我怎么能关闭弹出窗口?

我的视图包含

$(document).ready(function () {

    $('#StudentTableContainer').jtable({
        title: 'Employee List',
        paging: true, //Enable paging
        sorting: true, //Enable sorting
        defaultSorting: 'Name ASC',
        //openChildAsAccordion: true, //Enable this line to show child tabes as accordion style
        actions: {
            listAction: '@Url.Action("Details")',
            deleteAction: '@Url.Action("Delete")',
            updateAction: '@Url.Action("Update")',
            createAction: '@Url.Action("Create")'


        },
        recordAdded: function (event, data) {
            $('#StudentTableContainer').jtable('reload');
        },
        fields: {
          UserId: {
                key: true,
                create: false,
                edit: false,
                list: false
            },
            FirstName: {
                title: 'FirstName',
                width: '10%'
            },
          LastName: {
               title: 'LastName',
                width: '10%'
          },
          EMail: {
              title:'EMail',
                width: '10%'
          },
          Address: {
              title: 'Address',
                width: '10%'
          },
          PhoneNo: {
              title:'PhoneNo',
                width: '10%'
          },
          Company: {
              title:'Company',
              width:'10%'
          },
          Designation: {
              title:'Designation',
              width:'10%'
          }
      }
  });

  //Load person list from server
  $('#StudentTableContainer').jtable('load');

我的控制器有 Create 方法包含

[HttpPost] 公共 JsonResult 创建(用户列表用户列表) {

        try
        {
            userRepository.InsertUser(userList);
            return Json(new { Result = "OK" });

        }



        catch (Exception exception)
        {
            return Json(new { Result = "ERROR", Message = exception.Message });
        }
    }

【问题讨论】:

    标签: jquery asp.net-mvc jtable


    【解决方案1】:

    jtable 期望在返回的 json 中插入数据。

    类似

    {"Result":"OK","Record":[{"UserId":"169","FirstName":"Attic","LastName":"Server","EMail":"A@A .com","Address":"root","PhoneNo":"12121212","Company":"pass","Designation":"Manager"}]}

    你可以安装Firebug

    并检查您是否收到此错误 jTable 错误:服务器必须返回创建的记录对象。

    【讨论】:

      【解决方案2】:

      我想我和你有同样的问题。当尝试添加新记录“加载数据”时,即使收到 Json 消息,.gif 也永远不会消失。对我有用的两种可能的解决方案:

      (坏的)在 jtable.js => 搜索 _reloadTable 函数和注释行 self._showBusy(self.options.messages.loadingMessage, self.options.loadingAnimationDelay);

      (好的)尝试使用最新版本的 JTable。我现在正在测试它,并且 gif 从未出现过,一切正常

      【讨论】:

        【解决方案3】:

        您必须将添加的记录返回到json响应中。

        我不知道其他语言,但对于 PHP,它看起来像:

        $json['Result'] = "OK";
        $json['Record'] = $lastInsertedRecord; // query the last insert id from db
        print json_encode($json);
        

        【讨论】:

          【解决方案4】:

          记录必须是对象,而不是对象数组。您必须检查来自浏览器的 json 响应。

          {"结果":"OK","记录":[{"id":"2","item_id":"6","marked_number":"MN567","p_model":"MDL", "p_number":"PNUM","claimed_defects":"CLDEF"}]}

          一定是这样的:

          {"结果":"OK","记录":{"id":"2","item_id":"6","marked_number":"MN567","p_model":"MDL"," p_number":"PNUM","claimed_defects":"CLDEF"}}

          加上另一个问题,我处理了这个问题几天,在这里它在一封信中解决了(记录与记录)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多