зеркало из
1
0
Форкнуть 0

chore(demos): add grid viewcomponent mvc example

This commit is contained in:
alestoya 2023-09-25 18:05:14 +03:00 коммит произвёл Alexander Stoyanov
Родитель bc49f58290
Коммит 2ab28eee2c
4 изменённых файлов: 77 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Telerik.Examples.Mvc.Models;
namespace Telerik.Examples.Mvc.Controllers.Grid
{
public class ViewComponentController : Controller
{
public IActionResult ViewComponent()
{
var random = new Random();
var data = Enumerable.Range(1, 10)
.Select(x => new Product
{
Discontinued = x % 2 == 1,
ProductID = x,
ProductName = "Product " + x,
UnitPrice = random.Next(1, 1000),
UnitsInStock = random.Next(1, 1000),
UnitsOnOrder = random.Next(1, 1000)
})
.ToList();
return View(data);
}
}
}

Просмотреть файл

@ -0,0 +1,16 @@
using Microsoft.AspNetCore.Mvc;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using Telerik.Examples.Mvc.Models;
namespace Telerik.Examples.Mvc.ViewComponents
{
public class GridViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync(IEnumerable<Product> gridModel)
{
return View("default", gridModel);
}
}
}

Просмотреть файл

@ -0,0 +1,7 @@
@{
ViewData["Title"] = "View Component";
}
<h3>@ViewData["Title"]</h3>
@model IEnumerable<Product>
@await Component.InvokeAsync("Grid", Model)

Просмотреть файл

@ -0,0 +1,23 @@
@using Telerik.Examples.Mvc.Models
@model IEnumerable<Product>
@(Html.Kendo().Grid(Model)
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.ServerOperation(false)
)
.Columns(columns =>
{
columns.Bound(product => product.ProductID);
columns.Bound(product => product.ProductName);
columns.Bound(product => product.UnitsInStock);
columns.Bound(product => product.Discontinued);
})
.Pageable()
.Sortable()
.Filterable()
.Groupable()
)