private static MvcHtmlString ForTreeEditor(HtmlHelper Html, FieldItem field, IEntityTree entity, Object htmlAttributes = null) { var fact = EntityFactory.CreateOperate(entity.GetType()); var set = entity.GetType().GetValue("Setting") as IEntityTreeSetting; if (set == null || set.Parent != field.Name) { return(null); } // 增加前端自定义属性方便修改魔方模板 var atts = htmlAttributes.ToAttrDictionary(); TryAddAttribute(atts, "class", "multiselect"); //var atts = htmlAttributes == null // ? new RouteValueDictionary() // : htmlAttributes as IDictionary<String, Object>; //if(!atts.ContainsKey("class")) atts.Add("class", "multiselect"); var root = entity.GetType().GetValue("Root") as IEntityTree; // 找到完整菜单树,但是排除当前节点这个分支 var list = root.FindAllChildsExcept(entity as IEntityTree); var data = new SelectList(list, set.Key, "TreeNodeText", entity[field.Name]); return(Html.DropDownList(field.Name, data, atts)); }
private void BindNode(IEntityTree tree, string blank, string textName, string valueName) { foreach (var item in tree.Childs) { this.TypeID.Items.Add(new ListItem(blank + item[textName], item[valueName] + "")); string blank2 = HttpUtility.HtmlDecode(" " + blank); this.BindNode(item as IEntityTree, blank2, textName, valueName); } }
public void BuildTree(IEntityTree tree, string textName, string valueName) { string selectedValue = "0"; this.TypeID.SelectedValue = selectedValue; this.Controls.Add(this.TypeID); this.TypeID.Items.Clear(); this.TypeID.Items.Add(new ListItem("请选择 ", "0")); foreach (var item in tree.Childs) { this.TypeID.Items.Add(new ListItem(item[textName] + "", item[valueName] + "")); string blank = HttpUtility.HtmlDecode(" "); this.BindNode(item as IEntityTree, blank, textName, valueName); } this.TypeID.DataBind(); }
private static IHtmlContent ForTreeEditor(IHtmlHelper Html, FieldItem field, IEntityTree entity) { //var fact = EntityFactory.CreateOperate(entity.GetType()); var set = entity.GetType().GetValue("Setting") as IEntityTreeSetting; if (set == null || set.Parent != field.Name) { return(null); } var root = entity.GetType().GetValue("Root") as IEntityTree; // 找到完整菜单树,但是排除当前节点这个分支 var list = root.FindAllChildsExcept(entity); var data = new SelectList(list, set.Key, "TreeNodeText", entity[field.Name]); return(Html.DropDownList(field.Name, data, new { @class = "multiselect" })); }
public static async Task <TModel> AddItemAsync <TModel>(this IEntityTree entity, int?parent, Expression <Func <TModel, bool> > filter, string format = null) where TModel : class, IEntityTree, new() { var _ordem = 0; var dataService = AppHelper.Resolve <DbDataContext>(); var _path = ""; var _level = 0; var _count = await dataService.CountAsync <TModel>(filter); _count++; var nivel = _count; _ordem = nivel * 1000; _path = $"{_count}"; if (parent != null) { var _parent = await dataService.LoadAsync <TModel>(parent); _ordem = (_parent.Ordem + _count) + 1; _level = _parent.Level; _path = _parent.Path; _path = $"{_path}.{_count}"; } if (format != null) { _path = ApplyFormat(_level, _count, _path, format); } var record = new TModel(); _level++; record.InitPath(_path, _level); record.Ancestral = parent; record.Ordem = _ordem; return(record); }