如何在同一视图中拥有多个不同模型的网格。
我不太了解剑道的网格是如何工作的。 问题是,当我有一个模型的网格时,网格总是在视图中显示一些东西。当我只使用一个网格时,这是我的网格。
在HTML中:
@model IEnumerable<CampeonatoFutbol.Models.PartidoClub>
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ClubDesc).Title("EQUIPO").Width(220);
columns.Bound(c => c.PrtidoCodigo).Title("PJ").Width(60);
columns.Bound(c => c.GolesClub).Title("GC").Width(60);
columns.Bound(c => c.PuntosClub).Title("PUNTOS").Width(150);
})
.HtmlAttributes(new { style = "height: 300px;" })
.Scrollable()
.Reorderable(reorder => reorder.Columns(true))
.Pageable(pageable => pageable
.PageSizes(true))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
)
)
此网格没有读取方法操作,但它调用控制器的此方法操作:
public ActionResult Campeonato()
{
return View(list); // i return a list that is showing in the grid
}
当我试图显示另一个不同模型的网格时,问题就在这里:
@(Html.Kendo().Grid<CampeonatoFutbol.Models.Player>()
.Name("gridGoleadores")
.Columns(columns =>
{
columns.Bound(c => c.NombreJugador).Title("JUGADOR").Width(220);
columns.Bound(c => c.ClubDesc).Title("EQUIPO").Width(60);
columns.Bound(c => c.GolesJugador).Title("GOLES").Width(60);
})
.HtmlAttributes(new { style = "height: 300px;" })
.Scrollable()
.Reorderable(reorder => reorder.Columns(true))
.Pageable(pageable => pageable
.PageSizes(true))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GoleadoresCampeonato", "Campeonato"))
.PageSize(20)
)
)
此网格有一个方法操作,它从未在控制器中调用过。 这是一个控制器,它有一个我想在这个网格中返回的列表:
public ActionResult GoleadoresCampeonato()
{
return View(anotherList);
}
我也尝试过这种方式,但它不起作用:
public ActionResult GoleadoresCampeonato([DataSourceRequest]DataSourceRequest request)
{
return Json(anotherList.ToDataSourceResult(request));
}
只有第一个网格向我展示了一些内容,我希望其他网格也向我展示一些东西。
我该如何解决这个问题?
答案 0 :(得分:0)
您必须为其创建一个视图模型检查以下代码:
public partial class MasterModel
{
//For single
public virtual Player Player{ get; set; }
public virtual PartidoClub PartidoClub{ get; set; }
//For List
public List<PartidoClub> liPartidoClub { get; set; }
public List<Player > liPlayer { get; set; }
}
//Your Code On View
@model Application.Model.MasterModel
//For First Grid On Same View
@(Html.Kendo().Grid(Model.liPartidoClub)
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ClubDesc).Title("EQUIPO").Width(220);
columns.Bound(c => c.PrtidoCodigo).Title("PJ").Width(60);
columns.Bound(c => c.GolesClub).Title("GC").Width(60);
columns.Bound(c => c.PuntosClub).Title("PUNTOS").Width(150);
})
.HtmlAttributes(new { style = "height: 300px;" })
.Scrollable()
.Reorderable(reorder => reorder.Columns(true))
.Pageable(pageable => pageable
.PageSizes(true))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
)
)
//For Second Grid On Same View
@(Html.Kendo().Grid<Model.liPlayer>()
.Name("gridGoleadores")
.Columns(columns =>
{
columns.Bound(c => c.NombreJugador).Title("JUGADOR").Width(220);
columns.Bound(c => c.ClubDesc).Title("EQUIPO").Width(60);
columns.Bound(c => c.GolesJugador).Title("GOLES").Width(60);
})
.HtmlAttributes(new { style = "height: 300px;" })
.Scrollable()
.Reorderable(reorder => reorder.Columns(true))
.Pageable(pageable => pageable
.PageSizes(true))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GoleadoresCampeonato", "Campeonato"))
.PageSize(20)
)
)
希望此代码能为您提供帮助!!