protected override void OnClick(jQueryEvent e, int row, int cell) { base.OnClick(e, row, cell); if (!e.IsDefaultPrevented()) { SlickTreeHelper.ToggleClick(e, row, cell, view, getId: x => x.Key); } if (e.IsDefaultPrevented()) { return; } var target = J(e.Target); bool?grant = target.HasClass("grant"); if (grant.Value || target.HasClass("revoke")) { e.PreventDefault(); var item = this.view.Rows[row]; bool checkedOrPartial = target.HasClass("checked") || target.HasClass("partial"); if (checkedOrPartial) { grant = null; } else { grant = grant.Value ^ checkedOrPartial; } view.BeginUpdate(); try { if (item.IsGroup) { foreach (var d in GetDescendants(item)) { if (d.GrantRevoke != grant) { d.GrantRevoke = grant; view.UpdateItem(d.Key, d); } } } else if (item.GrantRevoke != grant) { item.GrantRevoke = grant; view.UpdateItem(item.Key, item); } } finally { view.EndUpdate(); } } }
private void SetItems(List <PermissionCheckItem> items) { SlickTreeHelper.SetIndents(items, getId: x => x.Key, getParentId: x => x.ParentKey, setCollapsed: false); this.View.SetItems(items, true); }
protected override bool OnViewFilter(PermissionCheckItem item) { if (!base.OnViewFilter(item)) { return(false); } if (!SlickTreeHelper.FilterById(item, view, getParentId: x => x.ParentKey)) { return(false); } if (!string.IsNullOrEmpty(containsText)) { return((MatchContains(item)) || (item.IsGroup && GetDescendants(item, false).Any(MatchContains))); } return(true); }