ExtJs Drag and Drop tree to grid

原文地址在这里,英语不太好,还是没看太明白。。点这里

 

代码如下:

 

dnd_tree_to_grid.js

 

Ext.onReady(function(){
	      var myData = {
	      	        records : [      
	      	              { name : "Rec 0", column1 : "0", column2 : "0" },            
	      	              { name : "Rec 1", column1 : "1", column2 : "1" },            
	      	              { name : "Rec 2", column1 : "2", column2 : "2" },            
	      	              { name : "Rec 3", column1 : "3", column2 : "3" },            
	      	              { name : "Rec 4", column1 : "4", column2 : "4" },            
	      	              { name : "Rec 5", column1 : "5", column2 : "5" },            
	      	              { name : "Rec 6", column1 : "6", column2 : "6" },            
	      	              { name : "Rec 7", column1 : "7", column2 : "7" },            
	      	              { name : "Rec 8", column1 : "8", column2 : "8" },            
	      	              { name : "Rec 9", column1 : "9", column2 : "9" }    
	      	                  ]  
	      	                    };    // Generic fields array to use in both store defs.    
	      var fields = [       
	      {name: 'name', mapping : 'name'},       
	      {name: 'column1', mapping : 'column1'},       
	      {name: 'column2', mapping : 'column2'}  
	        ];        // create the data store    
	      var firstGridStore = new Ext.data.JsonStore({     
	      	   fields : fields,        
	      	   data   : myData,        
	      	   root   : 'records'    
	      	   });        // Column Model shortcut array    
	      var cols = [     
	         { id : 'name', header: "Record Name", width: 160, sortable: true, dataIndex: 'name'},        
	         {header: "column1", width: 50, sortable: true, dataIndex: 'column1'},        
	         {header: "column2", width: 50, sortable: true, dataIndex: 'column2'}    
	         ];        // declare the source Grid  
	      var firstGrid = new Ext.grid.GridPanel({    
	      	    ddGroup          : 'secondTreeDDGroup',        
	      	    store            : firstGridStore,        
	      	    columns          : cols,        
	      	            //enableDragDrop   : false,        
	      	    stripeRows       : true,        
	      	    isTarget : true,        
	      	    autoExpandColumn : 'name',        
	      	    width            : 325,        
	      	    region           : 'west',        
	      	    title            : 'First Grid'    
	      	    });        
	      var root = new Ext.tree.AsyncTreeNode({    
	      	   text: 'main menu',       
	      	   draggable:false,       
	      	   id:'source'   
	     });       
	     var firstTree = new Ext.tree.TreePanel({   
	     	     autoScroll:true,        
	     	     animate:true,        
	     	     enableDD:true,        
	     	     ddGroup: 'secondTreeDDGroup',        
	     	     containerScroll: true,         
	     	     region : 'center',        
	     	     root: root,        
	     	     loader: new Ext.tree.TreeLoader({            
	     	     dataUrl:'multisel-data.json'        
	     	     })    
	     	     });    
	     var blankRecord =  Ext.data.Record.create(fields);    //Simple 'border layout' panel to house both grids    
	     var displayPanel = new Ext.Panel({    
	     	    width    : 650,        
	     	    height   : 300,        
	     	    layout   : 'border',        
	     	    renderTo : 'panel',        
	     	    items    : [       
	     	         firstGrid,            
	     	         firstTree    
	     	             ]    
	     	             });    
	     var secondGridDropTargetEl = firstGrid.getView().el.dom.childNodes[0].childNodes[1] 
	     var destGridDropTarget = new Ext.dd.DropTarget(secondGridDropTargetEl, {    
	     	    ddGroup    : 'secondTreeDDGroup',        
	     	    copy       : false,        
	     	    notifyDrop : function(ddSource, e, data){                    
	     	    	var record = new blankRecord({                        
	     	    		name     : ddSource.dragData.node.attributes.text,                        
	     	    		column1  : ddSource.dragData.node.attributes.id,                        
	     	    		column2  : ddSource.dragData.node.attributes.cls           
	     	    		         });                    
	     	    		   firstGridStore.add(record);       
	     	    		        return(true);               
	     	    		         }  
	     	    		           });
	     	     }); 

 

Html

 

 

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>MultiSelect &amp; ItemSelector</title>
    <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
    <script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="../extjs/ext-all-debug.js"></script>
    <script type="text/javascript" src="dnd_tree_to_grid.js"></script>
</head>
<body>
</body>
<div id="panel"></div>            <div id="contactspanel"></div>
</html>

 

 multisel-data.json

 

 

[{
    text:'Multiselection Example',
    id:'0',
    cls:'master-text',
    iconCls:'text-folder',
    children:[{
        text:'Abstract rendering in TreeNodeUI',
        leaf:true,
        iconCls:'text'
    },{
        text:'Create TreeNodeUI with column knowledge',
        leaf:true,
        iconCls:'text'
    },{
        text:'Create TreePanel to render and lock headers',
        leaf:true,
        iconCls:'text'
    },{
        text:'Add CSS to make it look fly',
        leaf:true,
        iconCls:'text'
    },{
        text:'Test and make sure it works',
        leaf:true,
        iconCls:'text'
    }]
}]

 

 

 

innovus 命令每日精要 | 掌控Innovus布线的利器——setNanoRouteMode详解 在数字IC后端设计的复杂世界里,布线优化是至关重要的一步。今天,我来给大家深入讲解Innovus工具中setNanoRouteMode命令的精妙之处,让你轻松驾驭布线策略,提升设计质量。setNanoRouteMode是Innovus中用于配置NanoRoute绕线行为的关键命令。通过其丰富的参数,你可以精细控制布局后阶段的绕线策略、信号完整性优化、工艺适配及设计规则修复等流程。下面,我将按功能分类总结其核心选项,并针对不同场景给出建议。 阅读详情

相关推荐

极空间NAS零基础部署Wiki.js:Docker+PostgreSQL全流程避坑指南

本文提供了一份在极空间NAS上从零部署Wiki.js私有知识库的详细指南。通过Docker容器化技术,结合PostgreSQL数据库,手把手讲解环境准备、核心组件配置、性能优化及安全加固等全流程,并特别针对极空间平台特性提供了避坑要点,帮助用户打造安全、高效、自主可控的知识管理系统。

3a9bq4r8t2y的博客 487

对EXTJS的控件之间DD的相关总结(一)

近来由于项目用到EXT,觉得里面的DD用起来很有意思,研究了一段时间源码,也总结了一些常用控件之间的用法,这方面网上的资料比较少,当时自己也走了一些弯路,现在暂时总结一下ext提供的Tree和Grid本身就有拖拽的功能,使用过TreePanel或者GridPanel的人都知道,对于要想让tree可以拖拽,那么必须为tree的enableDD属性设置为true。1,tree到gridpa

stonecai的专栏 4127

私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!

其实在此很感谢能做出H5开奖系统的码农们,而我本人也喜欢分解此类的东西。 因为特殊原因,该东西本人就不做图片展示,以防他人商业化。 借用开奖摇奖代码首先分解首页index文件。代码如下:(后面持续在原有的作品上添加后台操作) 代码里写的//.....是我的注明代码的所需。 ​ &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;...

yugua3837的博客 5996

ExtJs grid可拖拽行

ExtJS可拖拽功能步骤:在定义grid的时候设置enableDragDrop:true 可以拖拽的功能在定义一个dropTarget如果获得用户选择了几行;var rows = data.selections;得到用户拖动到第几行var index = dd.getDragData(e).rowIndex;varddrow=newExt.dd.DropTarget(grid....

weixin_30834783的博客 829

ubuntu20.04配置UR机械臂的仿真环境

gazebo和rviz中的机械臂的位姿是一样的,要实现同步控制,可以拖动rviz中的球移动到指定位置,点击plan观察路径规划,点击execute执行该路径规划,可以在gazebo和rviz中同步看到刚刚的路径规划运动,实现了简单的机械臂仿真环境搭建。这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令,参考之前的。之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。时,一直不成功,解决办法可以看我之前写的。

weixin_48319333的博客 3494

SpringBoot 指标监控——Actuator

1、 访问:localhost:8000/actuator 设置健康监控显示具体情况 metrics http://localhost:8000/actuator/metrics/jvm.gc.live.data.size 定制化health信息 //利用构造器,在注册中心中添加cityService.saveCity.count指标 public CityServiceImpl(MeterRegistry meter...

weixin_44302046的博客 4631

extjs grid 拖拽

功能需求:grid 拖拽 google了几篇,发现没有合适的资料,而且发现很多都是乱转载的,坑死人呀,还是决定自己研究下,去官网api搜索到 Ext.grid.plugin.DragDrop ptype:gridviewdragdrop ,没错这就是官方提供的grid插件。 猛读了一阵会发现2个单词比较显眼 drag 和 drop, 个人理解为:drag -- 托,drop -- 放,因...

iteye_10074的博客 623

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7457

ExtJS+ASP.NET实现Grid到Tree的拖动(DragDrop)

摘要:本文介绍使用ExtJS和Asp.NET实现GridPanel到TreePanel的拖动(Drag&amp;Drop)。例如,在Grid中多选任意行(使用CheckBox列),然后拖动到TreePanel的某一节点,实现想要的功能。 ExtJS+ASP.NET实现Grid到Tree的拖动(DragDrop)。 首先打开GridPanel的允许Drag的选项: 1: var gr...

weixin_34347651的博客 192

Dify 第 4 篇 Dify 示例:数据库执行Agent

本文介绍了如何在Dify平台创建一个能够执行SQL查询的数据库Agent。通过安装并配置"通义千问"和"数据库"两个插件,实现自然语言到SQL语句的转换和执行。关键步骤包括:1)安装插件并配置API Key;2)设置默认数据库连接(建议使用只读账号);3)准备测试数据表结构。该Agent支持通过工具调用查询表结构、转换自然语言为SQL、执行查询并返回结果,同时提供了CSV查询和HTTP API接口功能。文中还提供了MySQL测试数据表的创建脚本和示例数据。

甘蓝的专栏 1157

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 717

floating windows, drag and drop and google maps

树形结构代码: &lt;html&gt;&lt;head&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;&lt;title&gt;Ext2.2 Demo&lt;/title&gt;   &lt;link rel="stylesheet" type=&qu

liliugen的专栏 213

基于Matlab的深度学习OFDM系统信号检测

在接收端,我们首先去除循环前缀,然后对接收到的信号进行FFT变换和QAM解调。在通信系统中,正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)是一种常用的调制技术,它可以将高速数据流分成若干个低速子载波进行传输,提高了信道利用率和抗干扰性能。接下来,我们使用训练好的神经网络对QAM调制后的数据进行检测,得到估计的FFT变换结果。深度学习方法可以通过大量的训练数据来学习信号的特征,并具有一定的适应能力,在某些情况下可能能够获得更好的检测性能。

2301_79325657的博客 296

ext中将tree中的数据拖拽到grid中,动态生成列

今天写了好久,公司不能上网,回家后在网上查了下,效果终于出来了,特意写出来分享一下     Ext.onReady(function() {        var cmItems = [];        var cmConfig = {};        var cm = ne

1462

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ExtJs4入门之九: 补充Grid组件杂项

一:编辑事件 C层: //5.edit事件 /* "usergrid":{ edit:function(editor , e , options){ //alert(e); var models = e.record;//变化的model //ajax(){ // models....

thewebcode 202

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Jackson 序列化 / 反序列化注解 完整版笔记

Jackson 序列化 / 反序列化注解 完整版笔记

handsome_sai的博客 285

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

用 ijson 流式解析 SerpBase 快照归档:把 16GB 内存压回 200MB

凌晨三点,解析脚本把机器内存吃满了去年做搜索数据归档分析时,我写了一个统计脚本:读取一个月的原始响应归档,统计每个域名在自然结果里出现的次数。归档文件是把每天几千条 SerpBase 响应拼成一个大 JSON 数组,单月文件 2.4GB。脚本跑起来不到四十秒,监控告警就响了——一台 16GB 内存的机器,可用内存被吃到只剩几百兆,同机的采集任务全被拖慢。。

Y381532662的博客 271

AI 编程智能体零门槛调用手册:从“能跑”到“敢放进作品集”

抄下来的调用示例跑不通、密钥硬编码、换模型就崩?这份手册按使用频率排序,每条给出用途、最小示例和坑点,30秒定位你需要的片段。跟着做,你将得到一个可配置、可切换模型、密钥不入库的小型智能体脚本——正是面试常问的安全集成大模型能力。🔧 从“能跑”到“敢放进作品集”,只差这一层重构。

2601_94912102的博客 398

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信

本文剖析MCP服务端因调试日志污染Stdio管道导致客户端挂起的根因,指出console.log等非结构化输出会破坏JSON-RPC协议解析,引发通信僵死。提出双通道隔离方案:将业务通信严格限定于stdout,所有日志分流至stderr,并强制单行原子化传输与缓冲刷新。实践证明该架构可彻底消除解析崩溃与延迟问题,实现零延迟、高可靠的本地智能体通信,是MCP插件工程化的必选项。

艺杯羹的博客 509

在通用工作任务 AI-CODE 云端电脑落地企业级自治 Agent:zongyuan 本地持久层实战记录

构建自治Agent系统,算力、模型能力是表层能力;可信持久层、哈希确权、可回退、可审计才是系统持续进化的底座。无论使用什么模型,一旦产物没有稳定落点、没有指纹校验、故障无法回溯,每一次重启都相当于重新试错。这类以证据、校验、账本为核心的工程工作流,非常适合在预配置云端开发环境落地:终端输出的哈希、退出码、结构化体检报告,都可以直接作为可信交付凭证;模型推理额度专注业务逻辑,持久层可信底座依托标准库实现,轻量化、可控。

weixin_67195547的博客 218
上一篇: EXTJS GuiDesigner
下一篇: Ext ColorPicker
yangthree
博客等级 码龄20年 5粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值