LINQ绑定TreeView

TreeView绑定数据  今天在做权限管理的时候对TreeView终于有所了解。在这里我所实现的是使用TreeView进行权限分配。首先说一下TreeView的几个基本的属性1.ID  获取或设置treeviewd的标识符2.NodeIndent 获取或设置TreeView控件子节点的缩进量,该量是以像素为单位的3.Nodes 获取TreeNode对象的集合(TreeNodeCollection)。该属性 阅读详情

前台:

<table cellpadding="5" cellspacing="0" style="border:1px; width:100%;" >
                <tr >
                    <td style="width:70%;">
    <asp:TreeView ID="TreeView1" runat="server" ExpandDepth="0"
        onselectednodechanged="TreeView1_SelectedNodeChanged">
    </asp:TreeView>
    <asp:Label ID="Label1" runat="server"></asp:Label>
    <asp:Label ID="Label2" runat="server"></asp:Label>
    </td>

    </tr>
    </table>

后台:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }
        //绑定图书分类树
        protected void BindData()
        {
            BookClassificationBusiness bcb = new BookClassificationBusiness();
            var aa = bcb.GetBookClassification();
            if (aa.Any())
            {
                foreach (var a in aa)
                {
                    TreeNode node = new TreeNode();
                    node.Text = a.ClassificationName;
                    node.Value = Convert.ToString(a.Childid);
                    TreeView1.Nodes.Add(node);
                    BindChildData(node, a.Childid);
                }
            }
        }
        //绑定子节点
        protected void BindChildData(TreeNode tn,int parentid)
        {
            BookClassificationBusiness bcb = new BookClassificationBusiness();
            var bb = bcb.GetChildBookClass(parentid);
            if (bb.Any())
            {
                foreach (var b in bb)
                {
                    TreeNode Cnode = new TreeNode();
                    Cnode.Text =b.ClassificationName;
                    Cnode.Value = Convert.ToString(b.Childid);
                    tn.ChildNodes.Add(Cnode);
                    BindChildData(Cnode, b.Childid);
                }
            }
        }
        //取得父节点文字
        protected void GetParentName(TreeNode tn)
        {
            if (tn.Parent != null)
            {
                Label1.Text += "-" + tn.Parent.Text;
                Label2.Text += "," + tn.Parent.Value;
                GetParentName(tn.Parent);
            }
        }
        //反转字符串
        protected string TurnString(string str,char c)
        {
            string[] aa = str.Split(c);
            string bb = "";
            for (int i = aa.Length - 1; i > 0; i--)
            {
                bb += aa[i] + c;
            }
            bb += aa[0];
            return bb;
        }
        //得到图书分类字符串

        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            Label1.Text = TreeView1.SelectedNode.Text;
            Label2.Text = TreeView1.SelectedNode.Value;
            GetParentName(TreeView1.SelectedNode);
            Label1.Text = TurnString(Label1.Text, '-');
            Label2.Text = TurnString(Label2.Text, ',');
        }

数据库设计:

ChildId    ParentID ClassName

 

业务逻辑层:

        public IQueryable<COM_BookClassification> GetBookClassification()
        {
            CCPressDataContext cp = new CCPressDataContext();
            var aa = from a in cp.COM_BookClassification
                     where a.Parentid==0
                     select a;
            return aa;
        }

说明:根目录的id固定为0;

 

如何实现具有层次结构的 TreeView <一> (WPF/TreeView/Style/Template) 阐述如何在 WPF 中设置 TreeView 的样式和模板,并通过数据绑定 LINQ to SQL (DataContext),实现对类似组织机构、BOM等具有层次结构数据的描述。 阅读详情

相关推荐

LINQ实例教程-用Linq对TreeView进行操作

LINQ 实例 教程 LINQ 实例 教程

Linq绑定TreeView

一 Linq绑定TreeView 1.绑定 private void AddTreeView()         {             var data = GetParentData();             if (data.Any())             {                 foreach (var d in data)

萝卜丝机007 930

FLUENT UDF编译及蒸发冷凝相关问题

蒸发冷凝与相间传质

weixin_48029137的博客 1万+

LINQ编程实战之TreeView动态绑定数据

之前写了个WPF(Winform)中动态创建TreeView 的随笔,现在再在此文的基础上整一个LINQ的吧,感觉用LINQ简单多了,看来微软是越来越有意思了,呵呵,下面开始吧……首先,先来重新创建一个数据库表,这里的数据库表与之前所创建的表有些不同,大家可以自己对比一下。CodeCode highlighting produced by Actipro CodeHighlighter (

Asidy'blog - csdn 770

从零构建:Esp32+Esp-IDF驱动ST7789屏幕并集成LVGL图形库

本文详细介绍了如何从零开始使用Esp32和Esp-IDF驱动ST7789屏幕并集成LVGL图形库。内容涵盖环境准备、SPI驱动配置、屏幕初始化、LVGL图形库集成及常见问题排查,帮助开发者快速实现高效稳定的显示解决方案。

weixin_42657024的博客 524

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 266

Linq学习之绑定ASP.NET的TreeView控件

Linq学习之绑定ASP.NET的TreeView控件

m0_37546766的博客 254

用LangFuse+LangChain打造可观测的AI应用:从埋点到成本监控实战

本文详细介绍了如何将开源可观测性平台LangFuse深度集成到基于LangChain构建的AI应用中,特别是电商客服机器人场景。通过从基础SDK集成、提示词管理到成本监控的完整实战,帮助开发者实现对LLM应用内部工作流的清晰追踪、问题排查与费用分析,从而打造稳定、可控的生产级AI应用。

dapp9builder的博客 711

使用Linq绑定三级treeview 并获取被选中的checkbox所对应的text值

1.绑定treeview   private void DrawTree()     {         var tblist = tbdu.tbDepartments.Where(a=>a.pid=="0");         if (tblist.ToList().Count != 0)         {             foreach (tbDepartment ite

miyabaobeii的专栏 2134

Tribon Vitesse开发教程(一)

Tribon Vitesse简介 Tribon Vitesse是Tribon提供给Python编程语言的编程接口,它是一系列的API。使用Python的语法调用这些API,结合Python语言自身的语法生成的程序叫做Vitesse程序。Vitesse是法语“速度”的意思,读作“为戴斯”。使用Tribon Vitesse可以直接访问Tribon产品信息模型和使用Tribon应用程序的功能,以控制设计

forevermemory的专栏 2593

Windows非分页缓冲池内存泄漏实战:PoolMon与RAMMap高效排查指南

本文详细介绍了Windows系统中非分页缓冲池内存泄漏的实战排查方法。当系统出现卡顿且内存占用异常增长时,通过RAMMap工具快速定位非分页缓冲池异常,并利用PoolMon监控内核内存分配标签,精准锁定泄漏源。文章提供了从确认症状、安装工具到使用findstr命令溯源驱动文件的完整五步排查流程,并总结了常见泄漏标签与解决方案,帮助用户高效解决深层系统内存问题。

weixin_28455801的博客 1011

如何实现具有层次结构的 TreeView <三> (WPF/TreeView/Style/Template)

简单介绍了 WPF 中的数据绑定和数据模板(DataTemplate);介绍了如何将数据绑定到 TreeView 控件,并分步演示了数据模板 DataTemplate 的定制过程。

记忆碎片 1万+

YOLO11实战优化:暗光环境检测 | 引入Retinex增强模块与YOLO11联合训练,解决夜间/低照度场景抓拍痛点

本文探讨了暗光环境下目标检测的技术挑战与解决方案。研究发现,传统CNN模型在低照度条件下性能显著下降,主要由于光子数减少导致信噪比降低、目标特征被噪声淹没。针对这一问题,文章提出将可微分光照增强模块嵌入YOLO检测器的技术路线,重点分析了Retinexformer+YOLO11联合方案的优势。 文章对比了YOLO系列模型在暗光场景的表现,指出YOLO11凭借其C3k2模块、无锚检测头和多任务统一骨干网络,在低对比度图像特征提取方面优于前代产品。同时详细介绍了Retinexformer的理论基础和技术创新,包

2601_95807009的博客 206

树TreeView控件与DataTable交互添加节点(最高效的方法)

方法一: View Code 本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141742168/#region "读取树结点从Datatable"        /// &lt;summary&gt;        /// 读取树结点从Datatable"        /// &lt;/summary&gt;  ...

weixin_34245169的博客 219

Codex 接入国产大模型完整指南:CC-Switch 与 Codex++ 的工程化选型

Codex 默认走 OpenAI Responses API,而 DeepSeek、GLM、Kimi 等国产模型只提供 OpenAI-compatible 的 Chat Completions——两套协议在消息结构、流式响应、reasoning 字段、tool call 上都不兼容,所以"改个 Base URL + 填国产 Key"这种朴素操作根本跑不通。本文从架构师视角出发,把 Codex 接入国产大模型这件事讲透:先剖析协议链路到底卡在哪,再对比 CC-Switch和 Codex++两套主流方案的差异

少说,多做 3855

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

winform treeview 动态生成树形结构

数据模型为:id、文本、父亲id 创建TreeView: TreeView treeV = new TreeView(); 绑定根目录: this.TreeV.Nodes.Clear();//清空节点 TreeV_M.LabelEdit = false;//不可编辑 //添加根结点 Tr...

L_longqihang的博客 3763

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C#读取XML文件

XML文件格式内容如下: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;DataSource xmlns="Company"&gt; &lt;Node UserName="公司1" UserID="G1" LevelID="1" ParentID="" &gt

tempsitegoogle 193

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TreeView 绑定 以及 选择被选中的值

1.绑定treeview   private void DrawTree()     {         var tblist = tbdu.tbDepartments.Where(a=>a.pid=="0");         if (tblist.ToList().C

miyabaobeii的专栏 5168

关于asp.net用数据控件操作要新建的项及简要操作

GridView + ObjectDataSource    新建项:数据集(如果要添加新增按钮,要将各项设为TemplateFiled类型同时添加FooterTemplate,里面一般为textbox控件,用来新增内容,然后使用insert添加,然后进行数据绑定Gridview.DataBind())LinkDataSource   新建项:LINQ to SQL 类sqldatasource插...

liu_liuqiu的博客 214

TreeView控件树Demo 用DataTable绑定到TreeView

前台: <form id="Form1" runat="server">   <asp:TreeView ID="TreeView1" runat="server">   </asp:TreeView></form> 后台: using System; using System.Collections.Generic; ...

176

如何实现具有层次结构的 TreeView 模版使用

数据模板 (DataTemplate) 和数据绑定 (Data Binding) 为了把数据和界面进行关联,我们要做 3 件事: 1、在 MainWindow.xaml 中添加一个 TreeView 控件 [html] view plaincopy TreeView x:Name="tv">   TreeView>  

akjw008的专栏 2013
上一篇: asp.net中判断一个数最后一位是不是偶数?
下一篇: 冒泡排序法
peter521
博客等级 码龄19年 38粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值