[Ext.Net]TreePanel+gridPanel实例
@小花要完整例子,尝试一下图文并茂,力求完整。

前台代码
- <ext:ResourceManager ID="ResourceManager1" DirectMethodNamespace="RM" runat="server" />
- <ext:Store ID="StoreDeptDetailList" OnBeforeStoreChanged="StoreChanged" runat="server">
- <Reader>
- <ext:JsonReader IDProperty="ID">
- <Fields>
- <ext:RecordField Name="ID" />
- <ext:RecordField Name="wzdm" />
- ... ....
- <ext:RecordField Name="bz" />
- </Fields>
- </ext:JsonReader>
- </Reader>
- </ext:Store>
- <ext:Viewport ID="Viewport1" runat="server" Layout="border">
- <Items>
- <ext:Panel ID="Panel1" runat="server" Region="West" Split="true" Width="225" Border="false"
- AutoScroll="true">
- <Content>
- <ext:TreePanel ID="treePanel" runat="server" Border="false">
- <Root>
- </Root>
- <Listeners>
- <Click Handler="e.stopEvent();RM.NodeClick(node.id);" />
- </Listeners>
- </ext:TreePanel>
- </Content>
- </ext:Panel>
- <ext:Panel ID="PanelCenter" runat="server" Region="Center" Layout="Fit" Cls="ViewPortRight"
- ButtonAlign="Right" Width="270" Header="false" Title="物资明细" Icon="TableGear"
- Border="false">
- <Items>
- <ext:GridPanel ID="gpFuncsList" runat="server" StripeRows="true" ClicksToEdit="0"
- Header="false" Height="600" StoreID="StoreDeptDetailList" Border="true" TrackMouseOver="true">
- <TopBar>
- <ext:Toolbar ID="Toolbar2" runat="server" AutoWidth="true">
- <Items>
- <ext:Label runat="server" ID="lblTitle">
- </ext:Label>
- <ext:ToolbarFill ID="ToolbarFill1" runat="server" />
- <ext:Button ID="btnAdd" runat="server" Text="新增" Icon="Add">
- <Listeners>
- <Click Handler="#{gpFuncsList}.insertRecord();" />
- </Listeners>
- </ext:Button>
- <ext:Button ID="btnDelete" runat="server" Text="删除" Icon="Delete">
- <Listeners>
- <Click Handler="#{gpFuncsList}.deleteSelected();" />
- </Listeners>
- </ext:Button>
- <ext:Button ID="btnSave" runat="server" Text="保存" Icon="Disk">
- <Listeners>
- <Click Handler="#{gpFuncsList}.save();" />
- </Listeners>
- </ext:Button>
- </Items>
- </ext:Toolbar>
- </TopBar>
- <ColumnModel ID="ColumnModel1" runat="server">
- <Columns>
- <ext:Column ColumnID="wzmc" DataIndex="wzmc" Header="物资名称" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField1" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="ggxh" DataIndex="ggxh" Header="规格型号" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField2" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="bcdd" DataIndex="bcdd" Header="保存地点" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField3" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="sccj" DataIndex="sccj" Header="生产厂家" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField4" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="jxs" DataIndex="jxs" Header="经销商" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField5" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="zzs" DataIndex="zzs" Header="制造商" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField6" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="isny" DataIndex="isny" Header="是否为耐用品" Align="Center" Sortable="false">
- <Editor>
- <ext:ComboBox ID="TextField7" runat="server">
- <Items>
- <ext:ListItem Text="是" Value="是" />
- <ext:ListItem Text="否" Value="否" />
- </Items>
- </ext:ComboBox>
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="jldw" DataIndex="jldw" Header="计量单位" Align="Center" Sortable="false">
- <Editor>
- <ext:ComboBox ID="ComboBox4" runat="server">
- <Items>
- <ext:ListItem Text="方" Value="方" />
- <ext:ListItem Text="公斤" Value="公斤" />
- <ext:ListItem Text="发" Value="发" />
- <ext:ListItem Text="根" Value="根" />
- <ext:ListItem Text="台" Value="台" />
- <ext:ListItem Text="灯" Value="灯" />
- <ext:ListItem Text="吨" Value="顿" />
- <ext:ListItem Text="米" Value="米" />
- <ext:ListItem Text="鞋" Value="鞋" />
- <ext:ListItem Text="套" Value="套" />
- <ext:ListItem Text="块" Value="块" />
- <ext:ListItem Text="辆" Value="辆" />
- <ext:ListItem Text="个" Value="个" />
- <ext:ListItem Text="把" Value="把" />
- </Items>
- </ext:ComboBox>
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="cph" DataIndex="cph" Header="车牌号" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField12" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="djgl" DataIndex="djgl" Header="电机功率" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField13" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="zjs" DataIndex="jzs" Header="间(座)数" Align="Center" Sortable="false">
- <Editor>
- <ext:NumberField ID="TextField14" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="nx" DataIndex="nx" Header="使用年限" Align="Center" Sortable="false">
- <Editor>
- <ext:SpinnerField ID="SpinnerField2" runat="server" MinValue="1" MaxValue="100" AllowDecimals="true"
- DecimalPrecision="1" Accelerate="true" />
- </Editor>
- </ext:Column>
- <ext:Column ColumnID="scrq" DataIndex="scrq" Header="生产日期" Align="Center" Sortable="false">
- <Editor>
- <ext:DateField ID="TextField9" runat="server" />
- </Editor>
- <Renderer Fn="Ext.util.Format.dateRenderer('Y-m-d')" />
- </ext:Column>
- <ext:Column ColumnID="dqr" DataIndex="dqr" Header="到期日" Align="Center" Sortable="false">
- <Editor>
- <ext:DateField ID="TextField10" runat="server" />
- </Editor>
- <Renderer Fn="Ext.util.Format.dateRenderer('Y-m-d')" />
- </ext:Column>
- <ext:Column ColumnID="bz" DataIndex="bz" Header="备注" Align="Center" Sortable="false">
- <Editor>
- <ext:TextField ID="TextField11" runat="server" />
- </Editor>
- </ext:Column>
- </Columns>
- </ColumnModel>
- <BottomBar>
- <ext:PagingToolbar runat="server" ID="PagingToolbar1" PageSize="20" StoreID="StoreDeptDetailList">
- </ext:PagingToolbar>
- </BottomBar>
- <SelectionModel>
- <ext:RowSelectionModel ID="RowSelectionModel1" runat="server">
- </ext:RowSelectionModel>
- </SelectionModel>
- <LoadMask ShowMask="true" />
- </ext:GridPanel>
- </Items>
- </ext:Panel>
- </Items>
- </ext:Viewport>
复制代码
后台代码
- DataTable dt = new DataTable();
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack && !X.IsAjaxRequest)
- {
- BuildTree(this.treePanel.Root);
- Hidden();
- }
- }
- #region 创建树
- //添加节点
- private Ext.Net.TreeNodeCollection BuildTree(Ext.Net.TreeNodeCollection nodes)
- {
- try
- {
- if (nodes == null)
- {
- nodes = new Ext.Net.TreeNodeCollection();
- }
- dt = wzflBLL.Instance.getALlwzml();
- DataRow[] drx = dt.Select(" FatherCode=''");
- Ext.Net.TreeNode root = new Ext.Net.TreeNode();
- root.NodeID = drx[0]["wzdm"].ToString();
- root.Text = drx[0]["wzmc"].ToString();
- root.Qtip = drx[0]["wzmc"].ToString();
- root.Expanded = true;
- root.Draggable = false;
- root.HrefTarget = drx[0]["wzdm"].ToString();
- nodes.Add(root);
- //添加相应子节点
- this.AddNodes(root);
- //ResourceManager1.AddScript("RefreshTree();");
- return nodes;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- //添加子节点
- private void AddNodes(Ext.Net.TreeNode parent)
- {
- DataRow[] drx = dt.Select();
- drx = dt.Select("FatherCode='" + parent.NodeID + "'");
- if (drx.Length == 0)
- {
- return;
- }
- foreach (DataRow dr in drx)
- {
- Ext.Net.TreeNode node = new Ext.Net.TreeNode();
- node.NodeID = dr["wzdm"].ToString();
- node.Text = dr["wzmc"].ToString();
- node.Qtip = dr["wzmc"].ToString();
- node.HrefTarget = dr["wzdm"].ToString();
- parent.Nodes.Add(node);
- AddNodes(node);
- }
- }
- #endregion
- //NODE点击事件
- [DirectMethod]
- public void NodeClick(string nodeID)
- {
- hdPid.Text = nodeID;
- String wzdm = "";
- //根据选中的树节点 来动态隐藏列
- if (hdPid.Text != "")
- {
- wzdm = wzmxBLL.getMaxFahterCode(hdPid.Text);
- }
- if (wzdm == "3")
- {
- gpFuncsList.ColumnModel.SetHidden(8, false);
- gpFuncsList.ColumnModel.SetHidden(9, false);
- gpFuncsList.ColumnModel.SetHidden(10, false);
- gpFuncsList.ColumnModel.SetHidden(6, true);
- }
- else if (wzdm == "2")
- {
- gpFuncsList.ColumnModel.SetHidden(6, false);
- gpFuncsList.ColumnModel.SetHidden(8, true);
- gpFuncsList.ColumnModel.SetHidden(9, true);
- gpFuncsList.ColumnModel.SetHidden(10, true);
- }
- else
- {
- gpFuncsList.ColumnModel.SetHidden(6, true);
- gpFuncsList.ColumnModel.SetHidden(8, true);
- gpFuncsList.ColumnModel.SetHidden(9, true);
- gpFuncsList.ColumnModel.SetHidden(10, true);
- }
- List<wzmxEntity> list = wzmxBLL.Instance.GetEntities(" where 1=1 and fldm='" + nodeID + "'");
- StoreDeptDetailList.DataSource = list;
- StoreDeptDetailList.DataBind();
- }
- protected void Hidden()
- {
- gpFuncsList.ColumnModel.SetHidden(6, true);
- gpFuncsList.ColumnModel.SetHidden(8, true);
- gpFuncsList.ColumnModel.SetHidden(9, true);
- gpFuncsList.ColumnModel.SetHidden(10, true);
- }
- protected void StoreChanged(object sender, BeforeStoreChangedEventArgs e)
- {
- ChangeRecords<wzmxEntity> persons = e.DataHandler.ObjectData<wzmxEntity>();
- foreach (wzmxEntity created in persons.Created)
- {
- wzmxEntity entity = created;
- entity.dwdm = Request.Cookies["danwei"].Value.Trim();
- entity.bmdm = Request.Cookies["bumen"].Value.Trim();
- entity.fldm = hdPid.Text;
- entity.wzdm = wzrkmlDal.GetNumber("008", "");
- wzmxBLL.Instance.Insert(ref entity);
- }
- foreach (wzmxEntity updated in persons.Updated)
- {
- wzmxBLL.Instance.Update(updated);
- }
- e.Cancel = true;
- }
- }
http://www.ext.net.cn/forum.php?mod=viewthread&tid=1498&extra=page%3D4
[Ext.Net]TreePanel+gridPanel实例的更多相关文章
- [Ext.Net]TreePanel 异步加载数据
异步加载数据指的是页面加载的时候只显示根目录,点击根目录再去加载其子目录. 下面就来介绍下这种异步加载的树结构要怎么实现 现将例子的图 QQ图片20131225134353.jpg (12.1 KB, ...
- Ext.Net 复制GridPanel的数据
Ext.Net 复制GridPanel的数据 2013-11-28 09:50:04| 分类: Ext.net | 标签: |举报 |字号大中小 订阅 CSS: <styletype ...
- [JAVASCRIPT][EXTJS]直接用JSON创建树形控件(Ext.tree.TreePanel )(转)
直接用JSON创建树形控件(Ext.tree.TreePanel ) 1.创建多个根节点的树形 2.直接使用JsonList创建树形 <!DOCTYPE HTML PUBLIC "-/ ...
- Ext.tree.TreePanel 属性详解
Ext.tree.TreePanel 属性详解 2013-06-09 11:02:47| 分类: ExtJs|举报|字号 订阅 原文地址:http://blog.163.com/zzf_fly/b ...
- Ext.Net TreePanel 修改Icon图标
分类: Ext.Net2012-09-24 13:44 1779人阅读 评论(0) 收藏 举报 webformserverextassemblyxhtmlobject 1.默认icon 2.自定义ic ...
- ext.net 实现gridpanel checkbox锁定
<%@ Page Language="C#" %> <%@ Register Assembly="Ext.Net" Namespace=&qu ...
- Extjs-树 Ext.tree.TreePanel 动态加载数据
先上效果图 1.说明Ext.tree.Panel 控件是树形控件,大家知道树形结构在软件开发过程中的应用是很广泛的,树形控件的数据有本地数据.服务器端返回的数据两种.对于本地数据的加载,在extjs的 ...
- Ext JS 6开发实例(四) :调整主视图
上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...
- Ext JS 6开发实例(三) :主界面设计
在上文中,已经将CMD创建的应用程序导入到项目里了,而且也看到默认的主界面了,今天的主要工作就是修改这个主界面,以符合项目的需要.除了设计主界面,还有一些其他的东西需要配置一下. 添加本地化包 打开a ...
随机推荐
- PHP MySQL Update
UPDATE 语句用于中修改数据库表中的数据. 更新数据库中的数据 UPDATE 语句用于更新数据库表中已存在的记录. 语法 UPDATE table_name SET column1=value, ...
- pyinstaller 工具起步
准备 依赖 pyinstaller下载 语法 核心命令 可选项 实战 md2htmlpy 使用pyinstaller 其他测试 -D选项 --icon选项 遇到错误怎么办 总结 继上次的那个Pytho ...
- 让你的代码量减少3倍!使用kotlin开发Android(一)
让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了.得到的好处 ...
- iOS开源加密相册Agony的实现(五)
简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...
- 计算机网络之IP协议族
网际协议IP 与IP协议配套使用的还有三个协议: 地址解析协议 ARP (Address Resolution Protocol) 网际控制报文协议 ICMP (Internet Control ...
- pycallgraph 追踪Python函数内部调用
安装 安装pycallgraph 安装依赖 使用 待测脚本 追踪脚本 追踪结果 高级篇 隐藏私密函数 控制最大追踪深度 总结 GitHub上好代码真的是太多了,名副其实的一个宝藏.但是最近自己也反思了 ...
- CSS3 滤镜学习
html篇 样式篇 grayscale sepia saturate hue-rotate invert opactiy brightness contrast blur drop-shadow 综合 ...
- Linux 高性能服务器编程——I/O复用
问题聚焦: 前篇提到了I/O处理单元的四种I/O模型. 本篇详细介绍实现这些I/O模型所用到的相关技术. 核心思想:I/O复用 使用情景: 客户端程序要同时处理多个socket ...
- Dynamics CRM 删除字段时检测到有组件类型为查看的依赖组件而无法删除问题
今天在删除一个字段的时候报如下截图错误,点开详细信息会看到是一个快速查找视图,但却在视图列中没有找到我要删的那个字段,然后回过头来又看到组件类型是查看,这是啥类型?有点摸不着头脑了. 最后想到是不是查 ...
- 22 Notification样式设置内部按钮点击事件
package com.exam1ple.demo1; import android.app.Activity; import android.app.NotificationManager; imp ...