/// <summary> /// 递归设置树节点CheckStatus /// </summary> /// <param name="tc">树节点</param> private void SetNodeCheck(DevExpress.XtraTreeList.Nodes.TreeListNodes tc) { foreach (DevExpress.XtraTreeList.Nodes.TreeListNode node in tc) { if (node.ImageIndex == FORMICON) { SetNodeCheck(node.Nodes); } if (node.ImageIndex == FORMICON) //form { if (forminfo.ContainsKey(node.Tag.ToString())) { node.CheckState = forminfo[node.Tag.ToString()].ToString() == "0" ? CheckState.Unchecked : CheckState.Checked; } else { node.CheckState = CheckState.Unchecked; } } else if (node.ImageIndex == BUTTICON) //button { string form = node.ParentNode.Tag.ToString(); string butt = node.Tag.ToString(); if (auth.ContainsKey(form) && ((Dictionary <string, object>)auth[form]).ContainsKey(butt)) { node.CheckState = ((Dictionary <string, object>)auth[form])[butt].ToString() == "0" ? CheckState.Unchecked : CheckState.Checked; } else { node.CheckState = CheckState.Unchecked; } } } }
/// <summary> /// 递归获取画面名列表 /// </summary> /// <param name="tc">树节点</param> private void GetFormName(DevExpress.XtraTreeList.Nodes.TreeListNodes tc) { foreach (DevExpress.XtraTreeList.Nodes.TreeListNode node in tc) { if (node.ImageIndex == FORMICON) //form { nodeName.Add(node.Tag.ToString()); } } }
private void SetTreeNodesVisble(DevExpress.XtraTreeList.Nodes.TreeListNodes nodes, bool visible) { for (int _i = 0, _iCnt = nodes.Count; _i < _iCnt; _i++) { DevExpress.XtraTreeList.Nodes.TreeListNode node = nodes[_i]; node.Visible = visible; if (node.HasChildren) { node.Expanded = false; SetTreeNodesVisble(node.Nodes, visible); } } }
private bool IsAllChecked(DevExpress.XtraTreeList.Nodes.TreeListNodes nodes) { bool value = true; foreach (TreeListNode node in nodes) { if (!node.Checked) { value = false; break; } } return(value); }
private void EstablecerIcono(DevExpress.XtraTreeList.Nodes.TreeListNodes lnodos) { foreach (DevExpress.XtraTreeList.Nodes.TreeListNode nodo in lnodos) { string descripcion = (string)nodo.GetValue("DescripcionMenu"); if (nodo.Nodes.Count > 0) { EstablecerIcono(nodo.Nodes); if (descripcion.Equals("Mantenimientos") || descripcion.Equals("Mantenimiento")) { nodo.ImageIndex = 1; nodo.SelectImageIndex = 1; } else if (descripcion.Contains("Reporte")) { nodo.ImageIndex = 5; nodo.SelectImageIndex = 5; } } else if ((bool)nodo.GetValue("Tiene_FormularioAsociado")) { nodo.ImageIndex = 2; nodo.SelectImageIndex = 2; } else if (nodo.GetValue("nom_Formulario").ToString().Length < 1) { nodo.ImageIndex = 6; nodo.SelectImageIndex = 6; } else { nodo.ImageIndex = 3; nodo.SelectImageIndex = 3; } //string descripcion = (string)nodo.GetValue("Descripcion"); //if (descripcion.Equals("Mantenimientos")) //{ // nodo.ImageIndex = 1; //} } }
protected override void CalcRowGroupInfo(DevExpress.XtraTreeList.Nodes.TreeListNodes nodes, CalcRowGroupInfoArgs rowArgs) { rowArgs.Index = TreeList.TopVisibleNodeIndex; TreeListNode node = TreeList.TopVisibleNode; if (!TreeListFilterHelper.IsNodeVisible(node)) { node = TreeListNodesIterator.GetNextVisible(node); } while (node != null && rowArgs.Bounds.Top < ViewRects.Rows.Bottom) { ArrayList viewInfoList = null; RowInfo ri = CreateRowInfo(node); ri.VisibleIndex = rowArgs.Index; ri.Level = TreeListFilterHelper.CalcVisibleNodeLevel(ri.Node); ri.Expanded = ri.Node.Expanded; UpdateRowCondition(ri); ri.NodeHeight = CalcNodeHeight(ri, out viewInfoList); rowArgs.InflateBoundsHeight(ri.NodeHeight - RowHeight); Rectangle rect = rowArgs.Bounds; if (CanAddIndent(ri)) { rect.Y += TreeList.RootNodeIndent; } ri.Bounds = rect; CalcRowInfo(ri, viewInfoList); RowsInfo.Rows.Add(ri); if (CanAddIndent(ri)) { rowArgs.VertOffsetBounds(ri.Bounds.Height + TreeList.RootNodeIndent); } else { rowArgs.VertOffsetBounds(ri.Bounds.Height); } CalcRowFooterInfo(node, rowArgs); rowArgs.IncIndex(); node = TreeListNodesIterator.GetNextVisible(node); } RemoveInvisibleAnimatedItems(); }
/// <summary> /// 选中根据文字查找到的第一个项 /// </summary> /// <param name="nodes"></param> /// <param name="filterTxt"></param> /// <returns></returns> private bool SetTreeNode(DevExpress.XtraTreeList.Nodes.TreeListNodes nodes, string filterTxt) { for (int _i = 0, _iCnt = nodes.Count; _i < _iCnt; _i++) { string _key = string.Format("{0}", nodes[_i][_DropDisplayName]).ToUpper(); if (filterTxt.Length > 2 ? _key.Contains(filterTxt) : _key.StartsWith(filterTxt)) { //base.EditValue = nodes[_i].GetValue(ValueMember);//选择的时候不设置,在btnOk_Click的时候设置EditValue , this.popTree.FocusedNode = nodes[_i];//9.5版本必须用这个才能设置选中项 nodes[_i].Selected = true; return(true); } if (nodes[_i].Nodes.Count > 0) { if (SetTreeNode(nodes[_i].Nodes, filterTxt)) { nodes[_i].Expanded = true; return(true); } } } return(false); }