post 后 jqGrid 不刷新

jqGrid does not refresh after post

想法:我在 jqGrid 中加载我的数据。用户可以 select 多行并通过单击存储按钮导入它们。数据存储在服务器上 并修改状态列。发布后jqGrid实现了。

问题:发布到服务器后,页面刷新,jqGrid 刷新(它调用 GetData 方法)但网格不再显示任何行。

查看部分:

@using (Html.BeginForm("Import", "MyData", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    <input type="hidden" name="dataRow" id="dataRow" />
    <button id="storeSelected" type="submit" name="submitButton" value="StoreSelected" class="btn btn-default">Store Selected</button>
}

<table id="importGrid"></table>
<div id="importPager"></div>

脚本部分:

var lastsel;
var configUrl = '@Url.Action("GetData", "MyData")';
var editUrl = '@Url.Action("UpdateData", "MyData")';
jQuery("#importGrid").jqGrid({
        url: configUrl,
        datatype: "json",
        editurl: editUrl,
        colNames: ['Import State', 'Start', 'End', 'Description'],
        colModel: [
            { name: 'ImportState', index: 'ImportState', width: 40, sortable: true },
            { name: 'Start', index: 'Start', formatter: 'date' },
            { name: 'End', index: 'End', formatter: 'date' },
            { name: 'Description', index: 'Description', width: 150, sortable: false, editable: true },
        onSelectRow: function(id) {
            if (id && id !== lastsel) {
                jQuery("#importGrid").jqGrid('saveRow', lastsel, false);
                jQuery('#importGrid').jqGrid('editRow', id, true);
                lastsel = id;
            }
        },
        ...
});

$('#storeSelected').click(function() {

       var multiplerowdata = jQuery("#importGrid").getGridParam('selarrrow');
        $('#dataRow').val(multiplerowdata);           
});

控制器部分:

public ActionResult Import(
        MyViewModel viewModel,
        string datarow,
        string submitButton)
{
  if (submitButton == "StoreSelected")
  {
     ... // Does the import
  }
}

public ActionResult GetData()
{
   return Json(_Data, JsonRequestBehavior.AllowGet);
}

折腾了两个晚上终于找到bug了! jqGrid 一切都很好。问题是我导入了 通过我的 O/R Mapper 和混淆的 jqGrid 将数据发送到我的数据库 刷新的同时。

所以这对我来说是一个教训,让我始终正确使用 ViewModels,还有 当 Entity 看起来很简单的时候。希望这对其他人有帮助。