2013-08-18 2 views
2

Согласно требованию, у меня есть сетка пользовательского интерфейса Kendo на моем VIEW. Но, к сожалению, функция чтения не попадает в контроллер. Это раздражает, я получаю то же самое проблема, несмотря на то, что все, как представляется, соответствуют документации, представленной на http://demos.kendoui.com/web/grid/index.html. Вот мой код Просмотр:Kendo UI Grid не вызывает метод READ

@(Html.Kendo().Grid<StudentManagement_Models.Student>() 
.Name("studentsGrid") 
.Columns(columns => 
{ 

    columns.Bound(p => p.Id).Groupable(false); 
    columns.Bound(p => p.FirstName); 
    columns.Bound(p => p.MiddleName); 
    columns.Bound(p => p.LastName); 
    columns.Bound(p => p.CGPA); 



}) 
    .AutoBind(true) 
    .Pageable() 
    .Navigatable() 
    .Sortable() 
    .DataSource(dataSource => dataSource 
      .Ajax() 
          .Read(read => read.Action("GetAllStudents", "Student")) 
      ) 
     ) 

Вот мой контроллер действия:?

public ActionResult GetAllStudents([DataSourceRequest] DataSourceRequest request) 
    { 
     //Thread.Sleep(2000); 
     StudentManagement_Models.Student student = new StudentManagement_Models.Student(); 
     StudentHelper helper = new StudentHelper(); 
     student.SavedStudents = helper.GetAllStudents(); 

     return Json(student.SavedStudents.ToDataSourceResult(request)); 
    } 

Как мне справиться с этим ли я что-то отсутствует Просьба предложить.

Заранее спасибо.

+1

Я думаю, вы должны добавить этот «kendo.aspnetmvc.min.js» kendo js. – Jaimin

+0

@ Jaimin, у меня есть вышеупомянутый файл js, добавленный уже – Prasanna

ответ

5

Добавить все из этого файла в вашей странице

<script src="~/Script/Jquery-1.8.1.min.js" type="text/javascript"></script> 
<script src="~/Script/jquery-ui-1.8.20.min.js" type="text/javascript"></script> 
<script src="@Url.Content("~/Script/kendo.all.min.js")" type="text/javascript"></script> 
<script src="~/Script/kendo.web.min.js" type="text/javascript"></script> 
<script src="~/Script/kendo.aspnetmvc.min.js" type="text/javascript"></script> 
<link href="~/Content/kendo.common.min.css" rel="stylesheet" type="text/css" /> 
<link href="~/Content/kendo.default.min.css" rel="stylesheet" type="text/css" /> 

Я думаю, что вы MIS один из js на странице, probebly Jquery-1.8.1.min.js.

+0

Большое спасибо. I goth this done – Prasanna

+0

Я теоретически добавлял файлы js, но практически они не были из-за некоторых ошибок, которые я получил, которые я мог видеть после того, как вы указали рекомендации, упомянутые @david enitan. – Prasanna

3

попытка вызвать метод чтения с document.ready JQuery (в)

$(document).ready(function() { var grid = $("#studentsGrid").data("kendoGrid")
grid.dataSource.read()
})

Также является savedStudent тип студента .... Ur сетка связанный со Студентом, но вы возвращаете объекты SavedStudent

+0

Привет, @david enitan, я все еще не могу это сделать. – Prasanna

+1

Можете ли вы отправить образец полного кода, если нет ... запустить приложение ur в Google Chrome, щелкнуть правой кнопкой мыши в любом месте страницы и выбрать «Проверить элемент» из параметров ... Element Console загружается в нижней части страницы следующим образом: options ... Elements, Resources, Network, Sources ... And Console ... Если вы выберете консоль, вы увидите, что исключение будет поднято ... Если вы нажмете на исключение, то вы поймете, ... Дайте мне знать, если вы получите решение. Спасибо –

+0

действительно спасибо. Мне не хватало этой функции. Смена игры !!! – Prasanna

2

У меня была аналогичная проблема с версией MVC.

Я заметил, что получаю 404, но при нажатии ссылки 404'd в отладчике Chrome это действительно ударит по моему методу контроллера. Затем я заметил, что он использовал POST (и я указал HttpVerbs.Get).

Тогда я нашел это (от http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/troubleshooting):

По умолчанию Кендо сетки для ASP.NET MVC должен делать запросы POST, когда сконфигурирован для связывания Аякса. Это реализуется настраиваемым транспортом и схемой DataSource . Они определены в файле kendo.aspnetmvc.min.js. Убедитесь, что этот файл включен после других файлов JavaScript Kendo.

После проверки того, что скрипты действительно были в правильном порядке (и зная, что это, вероятно, было что-то с POST) я указал глагол, чтобы использовать в конце моего прочитанную в сетке, как так:

.Read(read => read.Action("MyList_Read", "Diagnosis").Type(HttpVerbs.Get)) 

Это решена МОЯ проблема.

+0

Решенные шахты тоже. Я рад, что нашел это! –

+0

Спасибо за это. В моем случае сетка также отправляла запросы POST с помощью Ajax. Добавление Get вынуждает его отправлять запросы GET. Однако возникла еще одна проблема. Мне пришлось добавить 'JsonRequestBehavior.AllowGet' в мое действие, чтобы он работал с запросами GET. –

0

«По умолчанию Kendo Grid для ASP.NET MVC должен делать запросы POST при настройке для привязки ajax». ??? Для Kendo UI версии 2014.1.318, я думаю, по умолчанию Kendo Grid для asp.net mvc делает запросы GET при настройке привязки ajax.

0

Я обнаружил, что если на одной и той же веб-странице есть две сетки (в данном случае на разных вкладках), то каждая сетка ДОЛЖНА иметь свой собственный метод источника данных в контроллере MVC - даже если обе сетки используют одни и те же данные,