使用 ASP.Net MVC 和 Kendo 网格进行数据绑定
Data binding with ASP.Net MVC and Kendo Grid
我刚开始使用 ASP.Net MVC 和 Kendo 控件。
我看过这个演示页面:Kendo Grid Binding to local data
好像一点也不难,但我不知道我错过了什么。
我从一个函数中获取数据,该函数从 SurveyDataManager.cs 中的 SQL 数据库中检索数据。
public static List<SurveySummary> GetSurveySummary(int resourceTag)
{
List<SurveySummary> surveySummaryList = new List<SurveySummary>();
try
{
using (ESSDataContext ess_context = new ESSDataContext())
{
var surveySummaryRec = ess_context.fn_ESS_SurveySummary(resourceTag).ToList();
foreach (var item in surveySummaryRec)
{
SurveySummary surveySummary = new SurveySummary()
{
SurveyID = item.SurveyHeaderID,
SurveyName = item.SurveyName,
SurveyInstructions = item.SurveyInstructions,
SurveyDescription = item.SurveyDescription,
Mandatory = item.Mandatory,
DueDate = item.DueDate,
Status = item.Status
};
surveySummaryList.Add(surveySummary);
}
}
}
catch (Exception e)
{
log.Error("Getting the survey summary failed for user with resource tag: " + resourceTag);
Elmah.ErrorSignal.FromCurrentContext().Raise(e);
}
return surveySummaryList;
}
这是由控制器调用的(HomeController 的索引):
public ActionResult Index()
{
var surveySummary = SurveyDataManager.GetSurveySummary(User.GetResourceTag());
return PartialView("~/Areas/Survey/Views/MySurveys.cshtml", surveySummary);
}
这是我的 MySurveys.cshtml 文件中的代码:
@using Kendo.Mvc
@using Entities.Survey
@(Html.Kendo().Grid<SurveySummary>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.SurveyName).Title("Survey Name").Width(100);
columns.Bound(p => p.SurveyDescription).Title("Description").Width(150);
columns.Bound(p => p.Originator).Title("Originator").Width(100);
columns.Bound(p => p.DueDate).Title("Due Date").Width(125);
columns.Bound(p => p.Status).Title("Status").Width(140);
})
.HtmlAttributes(new { style = "height: 550px;" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
//.Read(read => read.Action("Index", "Home"))
.PageSize(20)
)
)
我得到一个空网格,其中包含正确的列名(标题),但没有内容。 SurveySummaryList 中肯定至少有一项,但它没有显示在网格中。
我做错了什么?
您是否尝试过 @(Html.Kendo().Grid<SurveySummary>(Model)
而不是 @(Html.Kendo().Grid<SurveySummary>()
?
所以我意识到我正在发回一个列表,所以我需要将 cshtml 文件更改为:
@model IEnumerable<Symplexity.ESS.Entities.Survey.SurveySummary>
@(Html.Kendo().Grid(Model)
...
而不是原来的post。
我刚开始使用 ASP.Net MVC 和 Kendo 控件。
我看过这个演示页面:Kendo Grid Binding to local data
好像一点也不难,但我不知道我错过了什么。
我从一个函数中获取数据,该函数从 SurveyDataManager.cs 中的 SQL 数据库中检索数据。
public static List<SurveySummary> GetSurveySummary(int resourceTag)
{
List<SurveySummary> surveySummaryList = new List<SurveySummary>();
try
{
using (ESSDataContext ess_context = new ESSDataContext())
{
var surveySummaryRec = ess_context.fn_ESS_SurveySummary(resourceTag).ToList();
foreach (var item in surveySummaryRec)
{
SurveySummary surveySummary = new SurveySummary()
{
SurveyID = item.SurveyHeaderID,
SurveyName = item.SurveyName,
SurveyInstructions = item.SurveyInstructions,
SurveyDescription = item.SurveyDescription,
Mandatory = item.Mandatory,
DueDate = item.DueDate,
Status = item.Status
};
surveySummaryList.Add(surveySummary);
}
}
}
catch (Exception e)
{
log.Error("Getting the survey summary failed for user with resource tag: " + resourceTag);
Elmah.ErrorSignal.FromCurrentContext().Raise(e);
}
return surveySummaryList;
}
这是由控制器调用的(HomeController 的索引):
public ActionResult Index()
{
var surveySummary = SurveyDataManager.GetSurveySummary(User.GetResourceTag());
return PartialView("~/Areas/Survey/Views/MySurveys.cshtml", surveySummary);
}
这是我的 MySurveys.cshtml 文件中的代码:
@using Kendo.Mvc
@using Entities.Survey
@(Html.Kendo().Grid<SurveySummary>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.SurveyName).Title("Survey Name").Width(100);
columns.Bound(p => p.SurveyDescription).Title("Description").Width(150);
columns.Bound(p => p.Originator).Title("Originator").Width(100);
columns.Bound(p => p.DueDate).Title("Due Date").Width(125);
columns.Bound(p => p.Status).Title("Status").Width(140);
})
.HtmlAttributes(new { style = "height: 550px;" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
//.Read(read => read.Action("Index", "Home"))
.PageSize(20)
)
)
我得到一个空网格,其中包含正确的列名(标题),但没有内容。 SurveySummaryList 中肯定至少有一项,但它没有显示在网格中。
我做错了什么?
您是否尝试过 @(Html.Kendo().Grid<SurveySummary>(Model)
而不是 @(Html.Kendo().Grid<SurveySummary>()
?
所以我意识到我正在发回一个列表,所以我需要将 cshtml 文件更改为:
@model IEnumerable<Symplexity.ESS.Entities.Survey.SurveySummary>
@(Html.Kendo().Grid(Model)
...
而不是原来的post。