Member 13461662 Ответов: 0

Как вызвать метод контроллера из jqgrid.


Я добавил все необходимые скрипты Jquery &JqGrid и css.
Я использую MVC5.
я получил ошибку" Uncaught TypeError: Cannot read property 'msie' of undefined".
Поэтому я добавил скрипт jquery-migrate-1.2.1. после Jquery.

-- предупреждение msg JQMIGRATE: jQuery. browser устарел.

Что я уже пробовал:

$(document).ready(function () {

        debugger;
        $('.Importtbl').jqGrid({
            datatype: 'Json',
            mtype: 'GET',
            url: '@Url.Action("ImportData", "ReportablePayments")',
            colNames: ['PaymentDate', 'PayeeName', 'SrcDocType', 'Amount', 'Check Number', 'Object Code'],
            colModel: [
                { name: 'PaymentDate', index: 'PaymentDate', width: 20 },
                 { name: 'PayeeName', index: 'PayeeName', width: 50 },
                  { name: 'SrcDocType', index: 'SrcDocType', width: 20 },
                   { name: 'Amount', index: 'Amount', width: 15 },
                    { name: 'CheckNumber', index: 'CheckNumber', width: 20 },
                     { name: 'ObjectCode', index: 'ObjectCode', width: 10 }

            ],
            pager: '#pager',
            caption: 'Import Raw DATA',
            viewrecords: true,
            rowNum:10
        })

    });




---- Controller. cs
общественная ActionResult Данныхимпорта(инт строк,sidx по строке,строка Сорд инт странице)
{
return Json(null, JsonRequestBehavior.AllowGet);
}

Bryian Tan

Я не вижу, где в опубликованном коде есть ссылка на плагин. Зачем вообще приложению нужен этот плагин?

Кстати, почему метод ImportData возвращает null в jqGrid вместо объекта JSON?

Member 13461662

Это моя страница макета
<!DOCTYPE html>


<meta charset= "utf-8" />
в <мета имя="область просмотра" содержимого="ширина=устройство-ширина, начально-масштаб=1.0"&ГТ;
< title & gt;@ViewBag.Название-мое ASP.NET применение
@Стили.Render ("~/Content / css")












@Файлы сценариев.Render ("~/bundles/modernizr")




@формат HTML.Actionlink панели("имя приложения", "индекс", "дом", новый { площадь= "" } новые { @класс = "navbar, в-бренда" })



@формат HTML.Actionlink Панели("Домой", "Индекс", "Дом")
@формат HTML.ActionLink("About", "About", " Home")
@формат HTML.ActionLink("Контакт", "Контакт", " Главная Страница")

@Html. Partial ("_LoginPartial")
@RenderBody()

© @DateTime.Now.Год-мой ASP.NET применение
@Файлы сценариев.Render ("~/bundles/bootstrap")
@RenderSection ("скрипты", обязательно: false)



Я использую эту страницу макета в своем представлении.

Я просто пытаюсь увидеть пустую таблицу вместо данных. JqGrid не вызывает метод ImportData.

----- Controller. cs
индекс public ActionResult()
{
возвращение смотреть();
}
[HttpGet]
общественная ActionResult Данныхимпорта(инт строк,sidx по строке,строка Сорд инт странице)
{
return Json(null, JsonRequestBehavior.AllowGet);
}

Member 13461662

Я не знаю, как мои сценарии не публикуются здесь.
Но я использую следующие скрипты на странице макета после
Стили.Render ("~/Content / css")
jQuery-интерфейс-1.12.1.таможня/jQuery-интерфейс-1.12.1.таможня/jQuery-интерфейс.в CSS
на jQuery.jqGrid-3.8.2/УСБ/ИП.jqgrid.в CSS
jquery-3.2.1.min.js
jquery-migrate-1.4.1.js
jquery.mb.browser.js
jquery.jqGrid-3.8.2/js/i18n/grid.locale-en.js
jquery.jqGrid-3.8.2/js/jquery.jqGrid.min.js

Большое вам спасибо за ваш ответ.

Member 13461662

Это мой BundleConfig. cs

public static void RegisterBundles (bundlecollection bundles)
{
//пакеты.Add(new ScriptBundle("~/bundles/jquery").Включать(
// "~/Scripts/jquery - {version}. js"));

//пакеты.Add(new ScriptBundle("~/bundles/jqueryval").Включать(
// "~/Скрипты/библиотека jQuery.проверить*"));

//// Используйте разработанную версию Modernizr для разработки и обучения. Потом, когда ты
//// готов к производству, используйте инструмент сборки по адресу http://modernizr.com выбирать только те тесты, которые вам нужны.
связки.Add(new ScriptBundle("~/bundles/modernizr").Включать(
"~/Scripts/modernizr-*"));

связки.Add(new ScriptBundle("~/bundles/bootstrap").Включать(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));

связки.Add(new StyleBundle("~/Content/css").Включать(
"~/Content / bootstrap. css",
"~/Content/site. css"));
}

Я прокомментировал скрипты Jquery, потому что использую скрипты из макета.Но я использую bootstrap и css из пакета, который визуализируется на странице макета

Bryian Tan

можете ли вы удалить плагин jQuery. browser и все ссылки?

Member 13461662

Вы хотите, чтобы я удалил ниже скрипты..?

jQuery-интерфейс-1.12.1.таможня/jQuery-интерфейс-1.12.1.таможня/jQuery-интерфейс.в CSS
на jQuery.jqGrid-3.8.2/УСБ/ИП.jqgrid.в CSS
jquery-3.2.1.min.js
jquery-migrate-1.4.1.js
jquery.mb.browser.js
jquery.jqGrid-3.8.2/js/i18n/grid.locale-en.js
jquery.jqGrid-3.8.2/js/jquery.jqGrid.min.js

Bryian Tan

jquery.mb.browser.js - ... предполагая, что это тот, который устарел?

Member 13461662

Я удалил все скрипты, связанные с jQuery css, jqgrid, migrate и browser.js.
и раскомментировал скрипты jquery в bundle. config.
Я получил сообщение об ошибке " Uncaught TypeError: $(...). jqGrid-это не функция"


Затем я добавил связанные с JqGrid Плагины jqgrid. css,grid.locale-en.js,jqgrid.min.js на странице макета после рендеринга скриптов jquery из bundle.config.
Я получил сообщение об ошибке "не могу прочитать свойство 'msie' undefined"

Затем я добавил jquery-migrate-1.4.1.js файл на странице макета перед сценариями jqgrid.
Он показывает, как предупреждение МСГ"JQMIGRATE: в jQuery.браузер является устаревшим", а не вызов метода importdata.

Теперь я не использую jquery. mb. browser.js. все еще у меня есть проблема..

Member 13461662

Теперь это работает.- Я сделал две ошибки.
1. порядок скриптов. я изменил все скрипты на заголовочную часть страницы макета.ранее несколько скриптов отображались ниже основной части.
2. jqGrid id "Importtbl", я упоминал его как класс.

Большое вам спасибо, Брайан, за Вашу поддержку.

Bryian Tan

Рад, что ты с этим разобрался. Молодец!

0 Ответов