IE 7 падает при вызове функции JavaScript

0

У меня есть jqGrid в моем представлении asp.net mvc 4, и в этом представлении я определяю тип, который будет использоваться для 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. Я удалил и теперь работает.

Теги:
internet-explorer-7

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
};

  • 0
    Да, это была проблема;)
  • 0
    @ Satpal ты что-то сказал?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню