zoukankan      html  css  js  c++  java
  • 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;

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

      

  • 相关阅读:
    vue截取video视频中的某一帧
    sm加密前端解析--JS实现国密算法SM2加密
    前端js解析识别图片二维码
    如果让你来设计一个分页功能, 你会怎么设计? 前后端如何交互?
    jQuery事件
    如何实现文件上传?说说你的思路
    实现JWT鉴权机制
    对中间件概念的理解,如何封装 node 中间件
    Node 文件查找的优先级以及 Require 方法的文件查找策略
    angularjs input使用ng-model双向绑定无效bug解决
  • 原文地址:https://www.cnblogs.com/hellosnowy/p/2664707.html
Copyright © 2011-2022 走看看