ext.net动态绑定树TreePanel

采用的是ext.net+mvc

先看效果图的吧,

前台代码

                   <ext:TreePanel ID="tpPost" runat="server" Title="岗位列表" AutoHeight="true" Border="false">
                        <Loader>
                            <ext:TreeLoader DataUrl="/Broadcast/GetStorePost" />
                        </Loader>
                        <Root>
                            <ext:AsyncTreeNode NodeID="0" Text="车站岗位" />
                        </Root>
                        <%--   <Listeners>
                            <CheckChange Handler="node.getUI()[checked ? 'addClass' : 'removeClass']('complete')" />
                        </Listeners>--%>
                    </ext:TreePanel>

注释掉的那块是给选中的某个节点加样式的,我这边不需要就注释掉了

DataUrl指向mvc  Controllers的方法地址,

Root代表这棵树的根节点,我这里写死了

后台 Controllers中的方法

    #region 搜索岗位信息数据
        /// <summary>
        /// 搜索岗位信息数据 
        /// </summary>
        /// <param name="limit">分页数量</param>
        /// <param name="start">开始位置</param>
        /// <param name="dir">目录</param>
        /// <param name="sort">分类</param>
        /// <param name="searchValues">搜索条件字符串</param>
        /// <returns></returns>
        public ContentResult GetStorePost()
        {
            IList<Role> list = null;
            TreeNodeCollection treeNode = new TreeNodeCollection(false);
            try
            {
                //获取岗位数据
                list = UserInfoBLL.GetUserRole();
                foreach (Role post in list)
                {
                    string postName = post.RoleName;
                    string postId = post.RoleID.ToString();
                    Ext.Net.TreeNode tnBase = new Ext.Net.TreeNode();
                    tnBase.NodeID = postId;
                    tnBase.Text = postName;
                    //判断专题岗位是否勾选
                    if (isChoosePost(postName, "Post"))
                    {
                        tnBase.Checked = ThreeStateBool.True;
                    }
                    else
                    {
                        tnBase.Checked = ThreeStateBool.False;
                    }
                    tnBase.Leaf = true;
                    treeNode.Add(tnBase);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return Content(treeNode.ToJson());
        }
        #endregion

这里要说的是 tnBase.Checked = ThreeStateBool.False;

不管你的业务中是否需要增加默认勾选的需求,都需要增加这个属性。不然这颗树的节点前面会没有勾选框的。

  

原文地址:https://www.cnblogs.com/hellosnowy/p/2664707.html