У меня есть 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. Я удалил и теперь работает.
Удалите последнюю запятую (,) из сценария.
<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
};