or
@using (Html.BeginForm("Security", "Security", FormMethod.Post)){ <label for="roles" class="field-label">Securities by Role:</label> @(Html.Kendo().DropDownList() .Name("roles") .DataTextField("RoleName") .DataValueField("ID") .Events(e => e.Change("rolesChange")) .DataSource(ds => ds.Read("GetRoles", "Security")) ) <a href="#" id="saveButton" class="k-button k-button-icontext"><span class="k-icon k-update"></span>Save</a> <div class="treeview-back"> @(Html.Kendo().TreeView() .Name("treeview") .DataTextField("Text") .AutoBind(false) .Checkboxes(checkboxes => checkboxes.CheckChildren(true)) .Items(tv => { var list = Model.ToList(); foreach (var client in list) { tv.Add().Text(client.Name) .Id("cvm" + client.ID) .Items(root => { foreach (var campaign in client.Campaigns) { root.Add() .Text(campaign.CampaignName) .Id(campaign.ID.ToString()) .Checked(campaign.IsSelected); } }); } })) </div> }
<script>
var treeview = $("#treeview").data("kendoTreeView");
function rolesChange(e) {
var treeview = $("#treeview").data("kendoTreeView");
var value = this.value();
if (value) {
var url = '@Url.Action("Security", "Security")' + "?roleId=" + value;
$.ajax({
url: url,
type: 'POST',
});
}
}
</script>
public class SecurityController : BaseGridCrudController<SecurityDataMapper, SecurityViewModel>{ public ActionResult Security(int roleId = 0) { return View(GetTreeViewData(roleId == 0 ? (int?)null : roleId)); } protected override string ClassName { get { return "SecurityController"; } } public List<ClientViewModel> GetTreeViewData(int? id) { int? roleId = id; if (!roleId.HasValue) { var roleViewModels = RoleDataMapper.Instance.List().OrderBy(r => r.RoleName); RoleViewModel roleViewModel = roleViewModels.First(); roleId = roleViewModel.ID; } return _dataMapper.LoadByRoleId(roleId.Value); } public ActionResult GetRoles() { var roles = RoleDataMapper.Instance.List().OrderBy(r => r.RoleName); return Json(roles, JsonRequestBehavior.AllowGet); }}var dsOpts = { transport: { read: { url: function() { if(displayMode == "items") return "Coverage/GetFolderItemsByPage"; else if(displayMode == "filter") return "Coverage/GetFilterItemsByPage"; }, dataType: "json", data: function () { if (displayMode == "items") { return { folderId: function () { return $("#treeview").data("kendoTreeView").dataItem("#treeview_tv_active").FolderId }, sourceTypeFilter: function () { if ($("#optSourceType").length > 0) return $("#optSourceType").find(".k-state-selected").attr("value"); else return ""; } }; } else if (displayMode == "filter") { return getFilterItems(); } } } }, serverPaging: true, schema: { data: "MediaItems", total: function (response) { return response.Total; }, model: ItemModel, id: "ItemId" }, pageSize: 100, requestStart: function (e) { kendo.ui.progress($(".image-preview-list"), false); }, requestEnd: function (e) { resizeSliders(); if (displayMode == "items") { if (typeof $("#treeview").data("kendoTreeView").dataItem("#treeview_tv_active") != 'undefined') $("#hdrFolderName").html("Now Displaying Folder: " + $("#treeview").data("kendoTreeView").dataItem("#treeview_tv_active").Name); } else { $("#hdrFolderName").html("Now Displaying Filtered Results"); } }};MediaItems = new kendo.data.DataSource(dsOpts);$("#divPaging").kendoPager({ dataSource: MediaItems});.k-window-titlebar { background-image: none, linear-gradient(to bottom, rgb(9, 96, 142) 0px, rgb(16, 108, 153) 100%);}Html.Kendo().Chart<AccountPerformance>(Model.Results) .Name("chartMKT") .Title("Market Value") .Legend(legend => legend.Visible(false)) .Series(series => series.Line(model => model.Metrics.MarketValue) .Name(Model.ColumnTitle) .Labels(false) ) .ValueAxis(axis => axis .Numeric() .Labels(labels => labels.Format("{0:C0}"))) .CategoryAxis(axis => axis .Date() .MajorGridLines(builder => builder.Visible(false)) .Categories(model => model.MarketDate) .Labels(labels => labels.Format(mktValFormatter) .Rotation(mrkValRotation))) .SeriesDefaults(builder => builder.Line().Color("#005984")) .Tooltip(tooltip => tooltip .Visible(true) .Format("{0:C}") .Color("white") .Background("black") .Template("#= value #") ) .Render();