asp.net+jquery+ztree实现动态绑定数据例子

先看效果图:

1、用于获取JSON数据的代码:

 代码如下 复制代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RegionData.aspx.cs" Inherits="AT.Web.Ajax.RegionData" %>

后台代码:

 代码如下 复制代码

using AT.Business.DAL;
using AT.Business.IDAO;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AT.Web.Ajax
{
    public partial class RegionData : System.Web.UI.Page
    {
        private AT_System_IDAO systemidao = new AT_System_Dal();
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //取得前台ajax请求的方法名称
                string ajaxMethod = Request["ajaxMethod"].ToString();
                System.Reflection.MethodInfo method = this.GetType().GetMethod(ajaxMethod);
                if (method != null)
                {
                    //通过方法名称指向对应的方法
                    method.Invoke(this, new object[] { });
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Response.End();
            }
        }
        /// <summary>
        /// 异步加载当前节点的子节点
        /// </summary>
        public void AnsyData()
        {
            List<object> lsNode = new List<object>();
            try
            {
                string parentId = Request.Params["id"];
                DataTable dtRegion = this.systemidao.GetRegionList();
                DataView dv = new DataView(dtRegion);
                dv.RowFilter = "PRegion_ID = '" + parentId + "'";
                lsNode = getList(dv);
                htm = htm&(JsonConvert.SerializeObject(lsNode));
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 判断当前节点是否还有子节点
        /// </summary>
        /// <param name="ParentId">父节点Id</param>
        /// <returns>bool类型</returns>
        public bool isParentTrue(string ParentId)
        {
            try
            {
                DataTable dtRegion = this.systemidao.GetRegionList();
                DataView dv = new DataView(dtRegion);
                dv.RowFilter = "PRegion_ID = '" + ParentId + "'";
                return dv.Count >= 1 ? true : false;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 初始化第一次节点加载
        /// </summary>
        public void FirstAnsyData()
        {
            try
            {
                DataTable dtRegion = this.systemidao.GetRegionList();
                DataView dv = new DataView(dtRegion);
                dv.RowFilter = " PRegion_ID = '0' ";
                List<object> lsNode = new List<object>();
                lsNode = getList(dv);
                //用到了Newtonsoft.dll 转化成Json格式
                htm = htm&(JsonConvert.SerializeObject(lsNode));
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 把数据形式转换成zTree的json数据格式
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public List<object> getList(DataView table)
        {
            try
            {
                List<object> lsNode = new List<object>();
                bool isParent = true;
                foreach (DataRowView drv in table)
                {
                    var ParentId = string.IsNullOrEmpty(drv["PRegion_ID"].ToString()) ? "0" : drv["PRegion_ID"].ToString();
                    if (isParentTrue(drv["Region_ID"].ToString()))
                    {
                        isParent = true;
                    }
                    else
                    {
                        isParent = false;
                    }
                    var zTreeData = new
                    {
                        id = drv["Region_ID"],
                        pId = string.IsNullOrEmpty(ParentId) ? "0" : ParentId,
                        name = drv["Region_Name"],
                        isParent = isParent
                    };
                    lsNode.Add(zTreeData);
                }
                return lsNode;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}

2、用于展示zTree目录树的页面代码:

 代码如下 复制代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AT.Web.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>zTree树形示例</title>
    <link href="Themes/Styles/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <script src="Themes/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
    <script src="Themes/Scripts/artDialog/artDialog.source.js" type="text/javascript"></script>
    <script src="Themes/Scripts/artDialog/iframeTools.source.js" type="text/javascript"></script>
    <script src="Themes/Scripts/FunctionJS.js" type="text/javascript"></script>
    <script type="text/javascript">
    </script>
    <script src="Themes/Scripts/jquery.ztree.core-3.5.min.js"></script>
    <script type="text/javascript">
        var zNodes;
        var zTree;
        //setting异步加载的设置
        var setting = {
            async: {
                enable: true, //表示异步加载生效
                url: "Ajax/RegionData.aspx", // 异步加载时访问的页面
                autoParam: ["id"], // 异步加载时自动提交的父节点属性的参数
                otherParam: ["ajaxMethod", 'AnsyData'], //ajax请求时提交的参数
                type: 'post',
                dataType: 'json'
            },
            checkable: true,
            showIcon: true,
            showLine: true, // zTree显示连接线
            data: {  //用pId来标识父子节点的关系
                simpleData: {
                    enable: true
                }
            },
            expandSpeed: "", // 设置 zTree 节点展开、折叠的动画速度,默认为"fast",""表示无动画
            callback: { // 回调函数
                onClick: zTreeOnClick, // 单击鼠标事件
                asyncSuccess: zTreeOnAsyncSuccess //异步加载成功事件
            }
        };
        $(document).ready(function () {
            InitRegion();
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });
        //初始化加载节点
        function InitRegion() {
            $.ajax({
                url: 'Ajax/RegionData.aspx',
                type: 'post',
                dataType: 'json',
                async: false,
                data: { 'ajaxMethod': 'FirstAnsyData' },
                success: function (data) {
                    zNodes = data;
                }
            });
        };
        //单击时获取zTree节点的Id,和value的值
        function zTreeOnClick(event, treeId, treeNode, clickFlag) {
            var treeValue = treeNode.id + "," + treeNode.name;
            //单击给文本框赋值
            var Id = treeNode.pId;
            var v = "";
            if (Id == '' || Id == undefined || Id == null) {
                v = treeNode.name + " - 父节";
            }
            else {
                v = treeNode.name + " - 子节";
            }
            top.Role_Form.Get_Region_ID(treeNode.id, v);
            //双击的话关闭弹出框
            //OpenClose();
            alert(v + "," + treeNode.name);
        };
        function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <ul id="treeDemo" class="ztree"></ul>
    </form>
</body>
</html>

说明:

1、js加载完成后,调用服务器asp.net的方法,生成data

2、绑定data数据

时间: 2024-10-03 03:11:07

asp.net+jquery+ztree实现动态绑定数据例子的相关文章

asp.net+jquery滚动滚动条加载数据的下拉控件_jquery

这样的需求貌似自己感觉不是很合理,因为数据多了如此下拉无论从人还是机器操作都比较痛苦. 没办法由于需求下来了,只能按需求操作.网上找了很多相关控件都感觉有点庞大,占资源比较多.没办法自己花半天时间弄出个半成品自定义控件,拿出来分享下,如有高手看了请多指点. 需求:AJAX滚动滚动条加载数据的下拉列表 控件名称:Webcombo 所用技术:ASP.NET(C#),jQuery,ASP.NET一般处理文件(.ashx) 下拉列表具体实现:用DIV模拟下拉列表,input和图片模拟下拉框.最终结果如下

asp.net repeater怎么动态绑定数据

问题描述 asp.net repeater怎么动态绑定数据 如图我想给repeater选择性的绑定数据.但是t在下面是未定义的.怎么才能这样的绑定数据 解决方案 <ASP.NET>数据的绑定-RepeaterASP.NET Repeater绑定数据并实现分页ASP.NET Repeater绑定数据并实现分页

多个下拉列表-使用Jquery ztree 在同一个页面中出现多个input选择,每个input数据不同

问题描述 使用Jquery ztree 在同一个页面中出现多个input选择,每个input数据不同 使用一下dome代码,怎么在同一个页面中出现多个input选择,每个input下拉列表中的数据是不通的. <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - radio select menu</TITLE> <meta http-equiv="content-type"

基于jquery+ztree+java获取json数据构建树实例

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步加载 两种方式 支持多种事件响应及反馈 支持 Tree 的节点移动.编辑.删除 支持任意更换皮肤 / 个性化图标(依靠css) 支持极其灵活的 checkbox 或 radio 选择功能 简单的参数配置实现 灵活多变的功能 因为ztree的格式支持J

jquery ztree实现下拉树形框使用到了json数据_jquery

公司最近的项目需要用到树形下拉框,在网上找了挺多源码,最后还是采用了zTree来实现,因为代码的移植性比较高,而且数据的获取比较容易.废话不多说,直接上代码. index.jsp 复制代码 代码如下: <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c&q

数据-asp+ACCESS提交问题希望大牛给例子

问题描述 asp+ACCESS提交问题希望大牛给例子 2个网页提交2次数据,显示在一个后台 用post提交,附带详细代码!可好!!!5555555555555 最好有个简单的例子 解决方案 页面上用form包括两个表单 服务器端用request("id")获取

C#使用Jquery zTree实现树状结构显示 异步数据加载_C#教程

C#使用Jquery zTree实现树状结构显示_异步数据加载 JQuery-Ztree下载地址:https://github.com/zTree/zTree_v3 JQuery-Ztree数结构演示页面:  http://www.treejs.cn/v3/demo.php 关于zTree的详细解释请看演示页面,还有zTree帮助Demo.  下面简要讲解下本人用到的其中一个实例(直接上关键代码了): 异步加载节点数据:  A-前台: <link href="zTree_v3-master

zTree+ashx获取数据形成树形菜单的例子

使用zTree实现的效果如下: 即当鼠标点击进入文本框时,即通过ashx文件访问数据库后弹出zTree信息框.当点击窗口其他区域时此信息框隐藏.在这里,访问数据库的代码省略. 具体实现的代码如下: 1.html代码: <!DOCTYPE html> <html> <head>     <title>ZTREE DEMO </title>     <meta http-equiv="content-type" conten

如何用jquery 将 datagrid中数据导出到excel?

问题描述 如何用jquery 将 datagrid中数据导出到excel? 需要用到些什么插件?有例子更好 谢谢 解决方案 一个插件,将jquery数据生成excel的xml内容的字符串.下面是插件代码 <script> /** Jquery easyui datagrid js导出excel 修改自extgrid导出excel * allows for downloading of grid data (store) directly into excel * Method: extract