Как вызвать метод контроллера из 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
Рад, что ты с этим разобрался. Молодец!