0

我在我的 asp.net mvc 4 视图中有一个 jqGrid,在这个视图中我定义了一个将用于 jqGrid 的类型。jqGrid 在 jQuery 选项卡中(我有一个 jQuery 选项卡组件)。

选项卡中的jqGrid插入如下:

  <div id="jqGrid">
      @Html.Partial("../Grids/_MyGrid")
  </div>

这是在同一视图中的 ajax 调用中调用的,如下所示:

@using (Ajax.BeginForm("Search", "Item",
   new AjaxOptions
   {
       HttpMethod = "GET",
       InsertionMode = InsertionMode.Replace,
       UpdateTargetId = "jqGrid",
       OnSuccess = "showGridItems()"
   }))
{
    // My Stuff
}

在同一个视图中,我定义了一个将用于 jqGrid 的类型,如下所示:

<script type="text/javascript">
    var paramFromView = {
        DeleteAllCaption: '@Resource.CaptionPagerDeleteAll',
        ClearGridUrl: '@Url.Content("~/Item/ClearGridData")',
        DeleteAllConfirmationMessage: '@Resources.Resource.ItemDeleteAllDataConfirmation',
        Url: '@Url.Content("~/Item/GetData")',
        Width: @width,
        Height: @height,
        Caption: '@Resources.Resource.ItemIndexTitle',
        ItemName: '@Resources.Resource.ItemIndexName',
        ItemAddress: '@Resources.Resource.ItemIndexAddress',
        ItemType: '@Resources.Resource.ItemIndexType',
        Actions: '@Resources.Resource.ItemIndexActions',
        PageSize: @pageSize,
    };

</script>

上面指示的部分视图 _MyGrid 在同一视图中也如下所示:

<table id="_itemGrid" cellpadding="0" cellspacing="0">
</table>
<div id="_itemPager" style="text-align: center;">
</div>

当ajax调用被执行(见上面的ajax代码)并且结果是成功时,下面的javascript函数被调用onsuccess:

function showGridItems() {
    $('#_itemGrid').jqGrid({
        caption: paramFromView.Caption,
        colNames: ['ID', paramFromView.ItemName, paramFromView.ItemAddress, paramFromView.ItemType, paramFromView.Actions],
        colModel: (...)
}

这个函数定义在一个 js 文件中,它包含在下面的同一个视图中:

@section scripts
{
    @Content.Script("/Grids/ItemGrid.js", Url)
}

它在 IE8、IE9 和 IE10 中运行良好,但在 IE7 中它在 showGridItems 中崩溃。错误是说 paramFromView 没有定义!我不知道为什么,因为从 IE8 到 IE10 运行良好,但不适用于 IE7。发生了什么?

已更新 这是由 pageSize 后的逗号引起的。我已删除,现在可以使用。

4

1 回答 1

1

从脚本中删除最后一个逗号 (,)。

<script type="text/javascript">
var paramFromView = {
    DeleteAllCaption: '@Resource.CaptionPagerDeleteAll',
    ClearGridUrl: '@Url.Content("~/Item/ClearGridData")',
    DeleteAllConfirmationMessage: '@Resources.Resource.ItemDeleteAllDataConfirmation',
    Url: '@Url.Content("~/Item/GetData")',
    Width: @width,
    Height: @height,
    Caption: '@Resources.Resource.ItemIndexTitle',
    ItemName: '@Resources.Resource.ItemIndexName',
    ItemAddress: '@Resources.Resource.ItemIndexAddress',
    ItemType: '@Resources.Resource.ItemIndexType',
    Actions: '@Resources.Resource.ItemIndexActions',
    PageSize: @pageSize
};

于 2013-10-06T18:06:04.587 回答