or
public
class
Switch
{
[DisplayName(
"Switch Id"
)]
public
string
SwitchId {
get
;
set
; }
}
public
class
UserConsoleViewModelsController : Controller
{
public
ActionResult FilteredSwitches_Read([DataSourceRequest]DataSourceRequest request)
{
var filteredSwitches = GetFilteredSwitches().ToDataSourceResult(request);
//3 records are here at runtime
return
Json(filteredSwitches);
}
private
IEnumerable<Switch> GetFilteredSwitches()
{
return
db.Switches.ToList();
}
}
@(Html.Kendo().Grid<Switch>()
.Name(
"grid"
)
.Columns(columns =>
{
columns.Bound(c => c.SwitchId).Width(140);
})
.HtmlAttributes(
new
{ style =
"height: 380px;"
})
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(
true
)
.PageSizes(
true
)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action(
"FilteredSwitches_Read"
,
"UserConsoleViewModels"
))
)
$(e.item).children(
".k-link"
).text();
var menuItemOption2 = menuItems.Add().Text(child.Text).HtmlAttributes(
new
{@id=child.Oid.ToString()});
@model IList<ModelMenuItem>
@functions
{
public
void
addCategoryChildren(MenuItemBuilder builder,
string
parentCategory, IList<ModelMenuItem> items)
{
var children = items.Where(m => m.Category == parentCategory);
if
(children !=
null
)
{
builder.Items(menuItems =>
{
foreach
(var child
in
children)
{
var menuItemOption1 = menuItems.Add().Text(child.Text).Action(
"GetReports"
,
"Reports"
,
new
{Oid=child.Oid});
//var menuItemOption2 = menuItems.Add().Text(child.Text).HtmlAttributes(new {@id=child.Oid.ToString(), data-reportoid=child.Oid.ToString()});
}
});
}
}
}
@{
var categories = Model.Select(x => x.Category).Distinct().ToList();
}
<div id=
"workflowToolbar"
>
@(Html.Kendo().Menu()
.Name(
"mnuReports"
)
.Items(topMenu =>
{
foreach
(var cat
in
categories)
{
var builder= topMenu.Add().Text(cat.ToString());
addCategoryChildren(builder, cat.ToString(), Model);
}
})
.Events(e=>e.Select(
"reportSelectChanged"
))
)
</div>