or
@model Product
@using(Html.BeginForm("InsertProduct","Product"))
{
Html.TextBoxFor(val => val.Name);
Html.TextBoxFor(val => val.Id);
}
<
button
id
=
"addButton"
>Add</
button
>
<
script
type
=
"text/javascript"
>
$(document).ready(function () {
var window = $("#window").kendoWindow({
height: "200px",
modal: true,
title: "Centered Window",
visible: false,
width: "200px"
}).data("kendoWindow");
});
$("#addButton ").click(function () {
var window = $("#window").data("kendoWindow");
window.content("@Html.Partial("PartialViewSample ",new Product()).ToHtmlString()");
window.center();
window.open();
});
@(Html.Kendo().TreeView().Name("treeviewDepartments")
.BindTo(Model.Departments, (NavigationBindingFactory<
TreeViewItem
> mappings) =>
{
mappings.For<
AddDepartmentTreeModel
>(binding => binding.ItemDataBound((item, dapartment) =>
{
item.Text = dapartment.Name;
})
.Children(department => department.Departments));
})
)
function addDepartment()
{
var treeView = $("#treeviewDepartments").data("kendoTreeView");
var selectedNode = treeView.select();
// passing a falsy value as the second append() parameter
// will append the new node to the root group
if (selectedNode.length == 0) {
selectedNode = null;
}
treeView.append({
text: "New department"
}, selectedNode);
}
@(Html.Kendo().Grid<
ProductViewModel
>()
.Name("productsGrid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName)
.ClientFooterTemplate("Total Count: #=count#")
.ClientGroupFooterTemplate("Count: #=count#");
columns.Bound(p => p.UnitPrice).Format("{0:C}")
.ClientFooterTemplate("<
div
>Sum: #= sum #</
div
>")
.ClientGroupFooterTemplate("<
div
>Sum: #= sum #</
div
>");
columns.Bound(p => p.UnitsOnOrder)
.ClientFooterTemplate("Average: #=average#")
.ClientGroupFooterTemplate("Average: #=average#");
columns.Bound(p => p.UnitsInStock)
.ClientGroupHeaderTemplate("Units In Stock: #= value # (Count: #= count#)")
.ClientFooterTemplate("<
div
>Min: #= min #</
div
><
div
>Max: #= max #</
div
>");
})
.DataSource(dataSource => dataSource
.Ajax()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.UnitsInStock).Min().Max().Count();
aggregates.Add(p => p.UnitsOnOrder).Average();
aggregates.Add(p => p.ProductName).Count();
aggregates.Add(p => p.UnitPrice).Sum();
})
.Group(groups => groups.Add(p => p.Category))
.Read(read => read.Action("Products", "Home"))
)
public
ActionResult Products([DataSourceRequest] DataSourceRequest request)
{
return
Json(GetProducts().ToDataSourceResult(request));
}
private
IEnumerable<ProductViewModel> GetProducts()
{
var products =
new
List<ProductViewModel>();
products.Add(
new
ProductViewModel() { Category =
"Food"
, ProductName =
"Pasta"
, UnitPrice = 39.00m, UnitsInStock = 1, UnitsOnOrder = 5 });
products.Add(
new
ProductViewModel() { Category =
"Food"
, ProductName =
"Salami"
, UnitPrice = 21.00m, UnitsInStock = 2, UnitsOnOrder = 3 });
products.Add(
new
ProductViewModel() { Category =
"Food"
, ProductName =
"Bratwurst"
, UnitPrice = 39.00m, UnitsInStock = 2, UnitsOnOrder = 7 });
return
products.AsEnumerable();
}
@model IEnumerable<
ProductViewModel
>
@(Html.Kendo().Grid(Model)
.Name("productsGrid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName)
.ClientFooterTemplate("Total Count: #=count#")
.ClientGroupFooterTemplate("Count: #=count#");
columns.Bound(p => p.UnitPrice).Format("{0:C}")
.ClientFooterTemplate("<
div
>Sum: #= sum #</
div
>")
.ClientGroupFooterTemplate("<
div
>Sum: #= sum #</
div
>");
columns.Bound(p => p.UnitsOnOrder)
.ClientFooterTemplate("Average: #=average#")
.ClientGroupFooterTemplate("Average: #=average#");
columns.Bound(p => p.UnitsInStock)
.ClientGroupHeaderTemplate("Units In Stock: #= value # (Count: #= count#)")
.ClientFooterTemplate("<
div
>Min: #= min #</
div
><
div
>Max: #= max #</
div
>");
})
.DataSource(dataSource => dataSource
.Server()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.UnitsInStock).Min().Max().Count();
aggregates.Add(p => p.UnitsOnOrder).Average();
aggregates.Add(p => p.ProductName).Count();
aggregates.Add(p => p.UnitPrice).Sum();
})
.Group(groups => groups.Add(p => p.Category))
)