Ext.Net 1.x_Ext.Net.Dropdownlist结合TreePanel
来源:互联网 发布:php字符串反转 编辑:程序博客网 时间:2024/05/22 14:21
今天在学习布局的过程中,有个申请部门。就想到Dropdownlist+TreePanel,看DEMO有这样的,但是后台如何搞呢?
请教DB后终于搞定了。
前台:
<ext:DropDownField ID="ddldepartment" runat="server" Editable="false" FieldLabel="申请单位" AnchorHorizontal="100%" > <Component> <ext:TreePanel ID="TreePanel1" runat="server" Icon="ApplicationHome" Height="300" Shadow="None" UseArrows="true" AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false"> <Buttons> <ext:Button ID="btnclose" runat="server" Text="关闭"> <Listeners> <Click Handler="#{ddldepartment}.collapse();" /> </Listeners> </ext:Button> </Buttons> <Root> </Root> <Listeners> <CheckChange Handler="this.dropDownField.setValue(getTasks(this), false);" /> </Listeners> </ext:TreePanel> </Component> <Listeners> <Expand Handler="this.component.getRootNode().expand(true);" Single="true" Delay="10" /> </Listeners> </ext:DropDownField>
后台:
protected void Page_Load(object sender, EventArgs e) { if (!X.IsAjaxRequest) { string strsql = "select * from Framework"; DABaseAccess db = new DABaseAccess("OA"); DataTable dt = new DataTable(); dt = db.Query(strsql.ToString()); if (dt.Rows.Count > 0) { this.BuildTree(this.TreePanel1.Root, dt); } else { JScript.Alert("没有取得数据", this.Page); } } } /// <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("FParentID=-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]["FID"].ToString(); Tvn.Text = SourseTable.Rows[i]["FNAME"].ToString(); DataRow[] isChildNode = allData.Select("fparentid=" + SourseTable.Rows[i]["FID"].ToString()); if (isChildNode.Length <= 0) { Tvn.Leaf = true; Tvn.Checked = Ext.Net.ThreeStateBool.False; } if (isChildNode.Length > 0) Tvn.Icon = Icon.FolderGo; else Tvn.Icon = Icon.Table; BindSubTreePanel(Tvn, allData, SourseTable.Rows[i]["FID"].ToString()); topNode.Nodes.Add(Tvn); } } } return topNode; } private void BindSubTreePanel(TreeNode TrNode, DataTable allData, string parentID) { DataRow[] items = allData.Select("FParentID=" + 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]["FID"].ToString(); Tvn.Text = dt.Rows[i]["FNAME"].ToString(); DataRow[] isChildNode = allData.Select("fparentid=" + dt.Rows[i]["FID"].ToString()); if (isChildNode.Length <= 0) { Tvn.Leaf = true; Tvn.Checked = Ext.Net.ThreeStateBool.False; } if (isChildNode.Length > 0) Tvn.Icon = Icon.FolderGo; else Tvn.Icon = Icon.Table; BindSubTreePanel(Tvn, allData, dt.Rows[i]["FID"].ToString()); 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.Dropdownlist结合TreePanel
- Ext.Net 1.x_Ext.Net.TreePanel 选择值回传父页
- 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_JS获取页面EXT.NET控件
- EXT.NET 结合Linq 做的TreePanel树
- 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行选择
- Ext.Net 1.x_Ext.Net.GridPanel嵌套checkbox
- Ext.Net 1.x_Ext.Net.控件空值校验提示
- Ext.Net 1.x_Ext.Net.GridPanel嵌套COMBOX
- Excel中引用方法
- web开发平台_开发平台_开发平台_开发平台_开发平台
- Strtus2 Convention Plugin 配置规则
- 在Ubuntu上编译Android Gingerbread 2.3.1
- Flex 中Array的插入删除元素
- Ext.Net 1.x_Ext.Net.Dropdownlist结合TreePanel
- #ifdef 中的逻辑与或操作
- 各种平台和标准库定义的数据类型一览
- Windows不能在本地计算机启动OracleDBConsoleorcl
- 【Linux设备驱动程序(第三版)】----定时器:Timer
- 函数回调
- Hadoop—— 一个分布式系统基础架构
- android 中使用socket使native和framework通信
- RtlAllocateHeap