发布后jqGrid不刷新

时间:2015-04-14 07:09:30

标签: jquery asp.net-mvc-4 jqgrid

想法:我在jqGrid中加载数据。用户可以选择多行并通过单击存储按钮导入它们。数据存储在服务器上 并修改状态列。发布后,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);
}

1 个答案:

答案 0 :(得分:0)

两个晚上后我终于找到了这个虫子! jqGrid的一切都没问题。问题是我导入了 通过我的O / R Mapper将数据存入我的数据库,并将jqGrid混淆 清爽。

因此,对我来说,总是使用正确的ViewModel也是一个教训 当实体看起来很简单。希望这对其他人有一次帮助。