现在的位置: 首页 > 综合 > 正文

c#DevExpress组件TreeList控件自己控制节点图标(二)

2013年09月02日 ⁄ 综合 ⁄ 共 1909字 ⁄ 字号 评论关闭

 

绑定树节点及图标状态如下:

 

/// <summary>
        /// 绑定数据上报导出树
        /// </summary>
        private void BindJgsyTree()
        {
            JGSYTreeService jgsyTreeService = new JGSYTreeService();
            List<JGSYTree> listJgsyTree = jgsyTreeService.GetExportJgsyTree(Global.User.JS_USER_NAME);
            treeListJgsyCommon.Columns.Add();
            treeListJgsyCommon.Columns[0].Visible = true;
            treeListJgsyCommon.DataSource = listJgsyTree;
            treeListJgsyCommon.KeyFieldName = "JGSY_CODE";
            treeListJgsyCommon.ParentFieldName = "JGSY_PARENT_CODE";
            treeListJgsyCommon.Columns[0].FieldName = "JGSY_NAME";
            treeListJgsyCommon.ExpandAll();
            //ImageCollection imgCollection = TreeListImageState.GetImageCollection();
            treeListJgsyCommon.StateImageList = TreeListImageState.GetImageList();//imgCollection; //
            foreach (TreeListNode node in treeListJgsyCommon.Nodes)
            {
                node.StateImageIndex = (int)TreeNodeCheckImage.Loading;
                BindApplyStateChild(node, true);
            }

            //异步更新是否有上报数据控制节点状态
            BackgroundWorker bgWorker = new BackgroundWorker();
            bgWorker.DoWork += new DoWorkEventHandler((sender1, e1) =>
            {
                InvokeSetControlEnable(false); 
                foreach (TreeListNode node in treeListJgsyCommon.Nodes)
                {
                    string jgsyCode = node.GetValue("JGSY_CODE").ToString();
                    bool applyState = jgsyTreeService.GetApplyState(jgsyCode);
                    if (applyState)
                        node.StateImageIndex = (int)TreeNodeCheckImage.UnCheckedBranch;
                    else
                        node.StateImageIndex = (int)TreeNodeCheckImage.DisCheckedBranch;
                    BindApplyStateChild(node, false);
                }
                InvokeSetControlEnable(true); 
            });
            bgWorker.RunWorkerAsync();
        }

        /// <summary>
        /// 绑定申报状态
        /// </summary>
        private void BindApplyStateChild(TreeListNode treeNode, bool isLoading)
        {
            foreach (TreeListNode node in treeNode.Nodes)
            {
                if (isLoading)
                    node.StateImageIndex = (int)TreeNodeCheckImage.Loading;
                else
                {
                    string jgsyCode = node.GetValue("JGSY_CODE").ToString();
                    JGSYTreeService jgsyTreeService = new JGSYTreeService();
                    bool applyState = jgsyTreeService.GetApplyState(jgsyCode);
                    if (applyState)
                        node.StateImageIndex = (int)TreeNodeCheckImage.UnCheckedBranch;
                    else
                        node.StateImageIndex = (int)TreeNodeCheckImage.DisCheckedBranch;
                }
                BindApplyStateChild(node, isLoading);
            }
        }

 

抱歉!评论已关闭.