or
public JsonResult JsonIndex(){ var menus = _db.GetMenus( 0, 1, 1, 0 ); var allMenus = from m in menus where m.MenuId == 1 select new { Name = m.MenuName, ImageUrl = m.MenuImageUrl, NavUrl = m.MenuNavUrl, hasChildren = true, children = from m2 in menus where m2.ParentMenuId == m.MenuId select new { Name = m2.MenuName, ImageUrl = m2.MenuImageUrl, NavUrl = m2.MenuNavUrl, hasChildren = false, } }; JsonResult json = Json( allMenus, JsonRequestBehavior.AllowGet ); return ( json );}<script> $(document).ready(function () { function populateTreeView() { var remoteDataSource = new kendo.data.HierarchicalDataSource({ type: "json", transport: { read: "Home/JsonIndex" }, schema: { model: { text: "Name", ImageUrl: "ImageUrl", expanded: true, children: "children", hasChildren: "hasChildren", NavUrl: "NavUrl" } } }); $("#tv").kendoTreeView({ id: "tree123", Name: "tree123", dataSource: remoteDataSource, dataTextField: "Name", dataImageUrlField: "ImageUrl", select: onTreeViewSelect }); } $(document).ready(function () { populateTreeView(); }); }); </script>public class HomeController : Controller { // // GET: /Home/ [HttpGet] public ActionResult Index() { return View(); } // Carrier Actions // // POST: /ReadCarriers/ [HttpPost] public ActionResult CarrierRead([DataSourceRequest] DataSourceRequest request) { try { var facade = new CarrierFacade(); IList<Carrier> carriers = facade.GetAllCarriers(); return Json(carriers.ToDataSourceResult(request)); } catch (DbException ex) { ViewBag.ErrorMessage = ex.Message; return View("Error"); } } // Comment Actions // // POST: /CommentRead/ [HttpPost] public ActionResult CommentRead([DataSourceRequest] DataSourceRequest request, int carrierId) { try { var facade = new CarrierFacade(); IList<CarrierComment> comments = facade.GetAllComments(carrierId); return Json(comments.ToDataSourceResult(request)); } catch (DbException ex) { ViewBag.ErrorMessage = ex.Message; return View("Error"); } }}@using HappyHolidays.WebPortal.BusinessObjects@{ ViewBag.Title = "Carrier Directory";}@(Html.Kendo().Grid<Carrier>() .Name("grid") .Columns(columns => { columns.Bound(p => p.Name).Groupable(false); columns.Bound(p => p.Phone1).Groupable(false).Title("Primary Phone"); columns.Bound(p => p.Phone2).Groupable(false).Title("Secondary Phone"); columns.Bound(p => p.Fax).Groupable(false); columns.Command(command => { command.Edit(); command.Destroy(); }); }) .ToolBar(toolbar => toolbar.Create()) .Editable(editable => editable.Mode(GridEditMode.PopUp)) .Groupable() .Pageable() .Sortable() .Scrollable() .Filterable() .Selectable() .Resizable(resize => resize.Columns(true)) .Reorderable(reorder => reorder.Columns(true)) .ClientDetailTemplateId("carrier-detail") .DataSource( dataSource => dataSource .Ajax() .PageSize(50) .Model(model => { model.Id(p => p.CarrierId); model.Field(p => p.CarrierId).Editable(false); }) .Create(update => update.Action("CarrierCreate", "Home")) .Update(update => update.Action("CarrierUpdate", "Home")) .Destroy(update => update.Action("CarrierDelete", "Home")) .Read(read => read.Action("CarrierRead", "Home"))))<script id="carrier-detail" type="text/x-kendo-template"> @(Html.Kendo().Grid<CarrierComment>() .Name("commentsGrid#=CarrierId#") .Columns(columns => { columns.Bound(o => o.Comment); columns.Bound(o => o.AddedBy); columns.Bound(o => o.TimeStamp); }) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("CommentRead", "Home", new { carrierID = "#=CarrierId#" })) ) .Pageable() .Sortable() .ToClientTemplate() )</script><!DOCTYPE html><html><head> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <link href="@Url.Content("~/Content/kendo/2013.1.514/kendo.common.min.css")" rel="stylesheet" type="text/css" /> <link href="@Url.Content("~/Content/kendo/2013.1.514/kendo.dataviz.min.css")" rel="stylesheet" type="text/css" /> <link href="@Url.Content("~/Content/kendo/2013.1.514/kendo.metro.min.css")" rel="stylesheet" type="text/css" /> <link href="@Url.Content("~/Content/kendo/2013.1.514/kendo.dataviz.metro.min.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/kendo/2013.1.514/jquery.min.js")"> </script> <script src="@Url.Content("~/Scripts/kendo/2013.1.514/kendo.all.min.js")"> </script> <script src="@Url.Content("~/Scripts/kendo/2013.1.514/kendo.aspnetmvc.min.js")"> </script> <script src="@Url.Content("~/Scripts/kendo.modernizr.custom.js")"> </script></head><body> <div> @RenderBody() </div></body></html><script id="shipmentDetail-template" type="text/x-kendo-template">--- lots of template code removed for brevity --- # var myVal; var cr = data.CustomerReference; for (var key in cr) { if (cr.hasOwnProperty(key)) { myVal = cr[key]; # #= myVal # , # } } #</script>
$.ajax({ type: 'post', data: kendo.stringify($("#Grid").data("kendoGrid").dataSource.view()), dataType: "json", contentType: "application/json; charset=utf-8", url: '@Url.Action("CreateExcelFile","Helper")', success: function (response) { }, error: function (request, status, errorThrown) { }});