Я использую версию 2011.2.914 элементов управления. Всякий раз, когда я пытаюсь привязать данные из моего контроллера к представлению, я не могу получить данные в коллекции для отображения в сетке . Я получаю сообщение " Нет записей для отображения " из сетки.
Я хочу отметить, что если я не использую сетку Telerik, данные получаются в порядке (см. Ниже):
Контроллер без Telerik Grid
IEnumerable<YeagerTechWcfService.Customer> customerList = db.GetCustomers();
return View("Index", customerList);
View
@model IEnumerable<YeagerTech.YeagerTechWcfService.Customer>
@{
ViewBag.Title = "Customer Index";
}
<h2>Customer Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
Email
</th>
<th>
Company
</th>
<th>
FirstName
</th>
<th>
LastName
</th>
<th>
Address1
</th>
<th>
Address2
</th>
<th>
City
</th>
<th>
State
</th>
<th>
Zip
</th>
<th>
HomePhone
</th>
<th>
CellPhone
</th>
<th>
Website
</th>
<th>
IMAddress
</th>
<th>
CreatedDate
</th>
<th>
UpdatedDate
</th>
<th>
</th>
</tr>
@if (ViewData.Model != null)
{
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Company)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address1)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address2)
</td>
<td>
@Html.DisplayFor(modelItem => item.City)
</td>
<td>
@Html.DisplayFor(modelItem => item.State)
</td>
<td>
@Html.DisplayFor(modelItem => item.Zip)
</td>
<td>
@Html.DisplayFor(modelItem => item.HomePhone)
</td>
<td>
@Html.DisplayFor(modelItem => item.CellPhone)
</td>
<td>
@Html.DisplayFor(modelItem => item.Website)
</td>
<td>
@Html.DisplayFor(modelItem => item.IMAddress)
</td>
<td>
@Html.DisplayFor(modelItem => item.CreatedDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.UpdatedDate)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.CustomerID }) |
@Html.ActionLink("Details", "Details", new { id = item.CustomerID })
</td>
</tr>
}
}
</table>
Я пробовал привязку к ServerSide и Ajax. Оба не работают. Я искал сайт Telerik и сеть и не могу найти то, что отсутствует.
Что мне нужно сделать, чтобы решить эту проблему и получить данные в моей сетке?
Вот код в моем контроллере Customer для привязки Ajax (что я действительно хочу). По возвращении получения данных у меня есть файл изображения, который я сохранил, где данные находятся в коллекции customerList (, в StackOverflow нет возможности прикрепить какие-либо файлы, поэтому я могу не покажу).
Во время рендеринга View я захватывал данные при отладке нескольких объектов.
При циклическом перемещении по сетке во время привязки я записывал данные в другой файл.
Контроллер с использованием Telerik Grid:
используя Telerik.Web.Mvc;
Открытый класс CustomerController: контроллер
{
[GridAction]
public ActionResult Index()
{
IEnumerable<YeagerTechWcfService.Customer> customerList = db.GetCustomers();
return View(new GridModel<YeagerTechWcfService.Customer>
{
Data = customerList
});
}
}
Ниже приведен код в моем связанном представлении. Кстати, все связанные столбцы имеют IntelliSense, которые появляются для столбцов в моей модели. Это для действия Index в контроллере Customer.
@model Telerik.Web.Mvc.GridModel<YeagerTech.YeagerTechWcfService.Customer>
@{
ViewBag.Title = "Customer Index";
}
<h2>
Customer Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
@(Html.Telerik().Grid<YeagerTech.YeagerTechWcfService.Customer>()
.Name("Customers")
.Columns(columns =>
{
columns.Bound(o => o.Email);
columns.Bound(o => o.Company);
columns.Bound(o => o.FirstName);
columns.Bound(o => o.LastName);
columns.Bound(o => o.Address1);
columns.Bound(o => o.Address2);
columns.Bound(o => o.City);
columns.Bound(o => o.State);
columns.Bound(o => o.Zip);
columns.Bound(o => o.HomePhone);
columns.Bound(o => o.CellPhone);
columns.Bound(o => o.Website);
columns.Bound(o => o.IMAddress);
columns.Bound(o => o.CreatedDate).Format("{0:MM/dd/yyyy}");
columns.Bound(o => o.UpdatedDate).Format("{0:MM/dd/yyyy}");
}).DataBinding(dataBinding => dataBinding.Ajax().Select("Index", "Customer"))
.Pageable()
.Sortable()
.Scrollable()
.Resizable(resizing => resizing.Columns(true))
.Filterable())
</table>