动态加载TreeView

/*后台代码*/
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TreeViewTest
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CreateTreeView();
            }

        }
        /// <summary>
        /// 创建TreeView
        /// 此方法采取一次性加载目标数据到DataTable,递归查询DataTable,创建子节点
        /// </summary>
        private void CreateTreeView()
        {
            const int VirtualNodeId = 0;//虚拟根节点
            const string SqlStr = "select * from TreeDemo order by NodeID asc";
            string connStr = @"Data Source=ANLANTAN\SQLEXPRESS;Initial Catalog=vote;Integrated Security=True";
            SqlDataAdapter da = new SqlDataAdapter(SqlStr, connStr);
            DataTable dt = new DataTable();
            da.Fill(dt);
            CreateTreeViewRecursive(TreeMenu.Nodes, dt, VirtualNodeId);
        }

        private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSourse, int parentId)
        {
            string filter = string.Format("ParentId={0}", parentId);
            //查询子节点
            DataRow[] drArr = dataSourse.Select(filter);

            TreeNode node;
            foreach (DataRow dr in drArr)
            {
                node = new TreeNode();
                nodes.Add(node);
                node.Text = (string)dr["NodeName"];
                //node.Collapse();
                //node.Expand();
                //node.ExpandAll();
                //node.ShowCheckBox = true;
                node.ToolTip = node.Text;
                //递归创建子节点
                CreateTreeViewRecursive(node.ChildNodes, dataSourse, (int)dr["NodeID"]);
            }
        }
    }
}
  <%--  前台代码--%>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TreeView runat="server" ImageSet="Contacts" NodeIndent="10" ID="TreeMenu">
            <ParentNodeStyle Font-Bold="True" ForeColor="#5555DD" />
            <HoverNodeStyle Font-Underline="False" />
            <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" 
                VerticalPadding="0px" />
            <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" 
                HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
        </asp:TreeView>
    </div>
    </form>
</body>

2010010614545420.png

转载于:https://www.cnblogs.com/anlantan/archive/2010/01/06/1640417.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Treeview是一个基于Vue.js的树形控件,它可以用于显示层次结构数据。动态加载是指在需要时才加载数据,而不是一次性加载所有数据。Vue Treeview可以通过异步加载来实现动态加载。 实现动态加载的步骤如下: 1. 在Vue组件中定义一个方法,用于异步加载数据。 2. 在Vue Treeview组件中设置load-children属性为true,表示启用异步加载。 3. 在Vue Treeview组件中设置load-children属性的值为异步加载数据的方法名。 下面是一个示例代码,演示如何使用Vue Treeview实现动态加载: ``` <template> <div> <vue-treeview :nodes="nodes" :load-children="true" :load-children-method="loadChildren"></vue-treeview> </div> </template> <script> import VueTreeview from 'vue-treeview'; export default { components: { VueTreeview, }, data() { return { nodes: [ { id: 1, label: 'Node 1', children: [], }, { id: 2, label: 'Node 2', children: [], }, ], }; }, methods: { loadChildren(node, done) { // 异步加载数据 setTimeout(() => { node.children = [ { id: 3, label: 'Node 3', children: [], }, { id: 4, label: 'Node 4', children: [], }, ]; done(); }, 1000); }, }, }; </script> ``` 在上面的代码中,loadChildren方法用于异步加载数据。当Vue Treeview需要加载子节点时,它会调用loadChildren方法,并传入当前节点和一个回调函数done。loadChildren方法可以通过异步请求获取子节点数据,并将子节点数据设置到当前节点的children属性中。当数据加载完成后,调用done函数通知Vue Treeview数据已经加载完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值