2016-11-21 68 views
1

如何在同一視圖中擁有多個不同型號的網格。同一視圖中不同型號的多個網格

我不太清楚kendo網格的工作原理。 事情是當我有一個模型的網格,網格總是讓我看到視圖中的東西。當我只使用一個網格時,這是我的網格。

在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

你必須創建一個視圖模型對於它檢查下面的代碼爲:

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) 
     ) 
    ) 

希望這個代碼將會幫助你!

相關問題