Ext.Net 1.x_Ext.Net.TreePanel 选择值回传父页
来源:互联网 发布:秦伟平 知乎 编辑:程序博客网 时间:2024/06/04 18:49
HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Property2.aspx.cs" Inherits="DzPlatForm.CRM.Property.Property2" %><%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>属性二选择</title> <link rel="stylesheet" type="text/css" href="../../resources/css/main.css" /> <script type="text/javascript"> //树 单击取值主键FID function ClickNode(node) { if (node.hasChildNodes()) { //判断是否有子节点 } else { var t = node.attributes.text; var v = node.attributes.id; parent.txtPropertyName_2.setValue(t); parent.txtProperty_2.setValue(v); parent.WinCustClass.hide(); } } </script></head><body> <form id="form1" runat="server"> <ext:ResourceManager ID="ResourceManager1" runat="server" /> <ext:TreePanel ID="TreePanel1" runat="server" Icon="ApplicationHome" Height="450" Shadow="None" UseArrows="true" AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false"> <Root> </Root> </ext:TreePanel> </form></body></html>
CS:
using System;using System.Collections.Generic;using System.Linq;using System.Data;using System.Data.SqlClient;using Ext.Net;using DzPlatForm.DBUtility;namespace DzPlatForm.CRM.Property{ public partial class Property2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!X.IsAjaxRequest) { //读取来源数据表 string strSql = string.Format("SELECT [Id],[ParentId],[Name] FROM [CustomerClass]"); DataTable dt = new DataTable(); dt = SqlHelper.ExecuteDataset(SqlHelper.conn, CommandType.Text, strSql).Tables[0]; if (dt.Rows.Count > 0) { this.BuildTree(this.TreePanel1.Root, dt); } else { Notification.Show(new NotificationConfig { Title = "提示", Icon = Icon.Information, Html = "没有取得数据" }); } } } /// <summary> /// TreePanel /// </summary> /// <param name="allData"></param> /// <returns></returns> public TreeNode BindTreePanel(DataTable allData) { TreeNode topNode = new TreeNode(); topNode.NodeID = "0"; topNode.Text = "Root"; if (allData != null && allData.Rows.Count > 0) { DataRow[] items = allData.Select("ParentId=-1"); if (items != null && items.Length > 0) { DataSet ds = new DataSet(); ds.Merge(items); DataTable SourseTable = ds.Tables[0]; for (int i = 0; i < SourseTable.Rows.Count; i++) { TreeNode Tvn = new TreeNode(); Tvn.Expandable = ThreeStateBool.True; Tvn.NodeID = SourseTable.Rows[i]["Id"].ToString(); Tvn.Text = SourseTable.Rows[i]["Name"].ToString(); DataRow[] isChildNode = allData.Select("ParentId=" + SourseTable.Rows[i]["Id"].ToString()); if (isChildNode.Length > 0) { Tvn.Icon = Icon.FolderGo; } else { Tvn.Leaf = true; Tvn.Icon = Icon.ApplicationViewColumns; } BindSubTreePanel(Tvn, allData, SourseTable.Rows[i]["Id"].ToString()); Tvn.Listeners.Click.Handler = "ClickNode(node)"; topNode.Nodes.Add(Tvn); } } } return topNode; } /// <summary> /// /// </summary> /// <param name="TrNode"></param> /// <param name="allData"></param> /// <param name="parentID"></param> private void BindSubTreePanel(TreeNode TrNode, DataTable allData, string parentID) { DataRow[] items = allData.Select("ParentId=" + parentID); if (items != null && items.Length > 0) { DataSet ds = new DataSet(); ds.Merge(items); DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { TreeNode Tvn = new TreeNode(); Tvn.Icon = Icon.Note; Tvn.NodeID = dt.Rows[i]["Id"].ToString(); Tvn.Text = dt.Rows[i]["Name"].ToString(); DataRow[] isChildNode = allData.Select("ParentId=" + dt.Rows[i]["Id"].ToString()); if (isChildNode.Length > 0) { Tvn.Icon = Icon.FolderGo; } else { Tvn.Leaf = true; Tvn.Icon = Icon.ApplicationViewColumns; } BindSubTreePanel(Tvn, allData, dt.Rows[i]["Id"].ToString()); Tvn.Listeners.Click.Handler = "ClickNode(node)"; TrNode.Nodes.Add(Tvn); } } } private Ext.Net.TreeNodeCollection BuildTree(Ext.Net.TreeNodeCollection root, DataTable dt) { root.Add(this.BindTreePanel(dt)); return root; } }}效果:
- Ext.Net 1.x_Ext.Net.TreePanel 选择值回传父页
- Ext.Net 1.x_Ext.Net.Dropdownlist结合TreePanel
- Ext.Net 1.x_Ext.Net.GridPanel行选择
- Ext.Net 1.x_Ext.Net.Combox选择触发事件
- Ext.Net 1.x_Ext.Net.Combox联动
- Ext.Net 1.x_Ext.Net.日期格式化
- Ext.Net 1.x_Ext.Net.GridPanel CRUD
- Ext.Net 1.x_Ext.Net.皮肤切换
- Ext.Net 1.x_Ext.Net.DirectMethods
- Ext.Net 1.x_Ext.Net.GridPanel 事件
- Ext.Net 1.x_Ext.Net.CheckboxSelectionModel类型Ext.grid.GridPanel的某行不能选择
- Ext.Net 1.x_Ext.Net.Combox动态加载与删除所选择项
- Ext.Net 1.x_Ext.Net_JS获取页面EXT.NET控件
- Ext.Net 1.x_Ext.Net.Combox 实现模糊异步查询
- Ext.Net 1.x_Ext.Net.TaskManager模拟进度条
- Ext.Net 1.x_Ext.Net.GridPanel 删除行提示
- Ext.Net 1.x_Ext.Net.GridPanel行按钮高亮否
- Ext.Net 1.x_Ext.Net.GridPanel嵌套checkbox
- string.Format 格式化时间,货币
- 智能视频分析常用的数据库
- ORACLE释放UNDO表空间
- Android SoftAp支持 (一)
- 基于内容可变长度分块(CDC)
- Ext.Net 1.x_Ext.Net.TreePanel 选择值回传父页
- ios 双指捏合放大缩小图片的例子
- Android系统默认音量
- 快速找到未知长度单链表的中间节点。(腾讯)
- python控制流
- android关于EditText弹出软键盘的问题
- 算法系列之十二:多边形区域填充算法--扫描线填充算法(有序边表法) .
- 使用Eclipse开发Android时整个工程或第三方jar包的正确使用
- 路由器和交换机的区别