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

本文总结了EXTJS中Tree和Grid控件之间的拖放(DD)操作,包括从Tree到Grid和从Grid到Tree的实现。通过设置enableDD属性为true启用Tree的拖放功能,并详细解释了dropZone配置、onNodeOver和onNodeDrop方法的用法,以及处理grid到tree拖放的beforenodedrop事件和自定义函数ddFn。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近来由于项目用到EXT,觉得里面的DD用起来很有意思,研究了一段时间源码,也总结了一些常用控件之间的用法,这方面网上的资料比较少,当时自己也走了一些弯路,现在暂时总结一下

ext提供的Tree和Grid本身就有拖拽的功能,使用过TreePanel或者GridPanel的人都知道,对于要想让tree可以拖拽,那么必须为tree的enableDD属性设置为true。

1,tree到grid


panel.dropZone = new Ext.dd.DropZone(panel.getEl(), {ddGroup:"SendTreeDDGroup", dropNotAllowed:"x-dd-drop-delete", getTargetFromEvent:function (e) {
 return e.getTarget("");
}, onNodeOver:function (nodedate, dragsource, e, data) {
 if (!data.node) {
  if (data.personData.name) {
       // 显示"nodrop"图标
   return "x-dd-drop-nodrop";
  } else {
   if (data.personData.html) {
       // 显示删除图标
   }
  }
  return this.dropNotAllowed;
 }
 if (data.node.attributes.leaf && SendGrid.store.findBy(function (record, id) {
  return id == data.node.id;
 }) == -1) {
  return "x-dd-drop-ok-add";
 } else {
  return "x-dd-drop-nodrop";
 }
 return this.dropNotAllowed;
}, onNodeDrop:function (nodedate, dragsource, e, data) {
 if (data.node.attributes.leaf == true) {
  SendGrid.store.add(new Ext.data.Record({dept:data.node.attributes.dept, faxnum:data.node.attributes.faxnum, faxtype:data.node.parentNode.attributes.dept, faxtel:data.node.attributes.faxnum}, data.node.id));
 }
 return false;
}});

2,grid到tree的例子
beforenodedrop: function(dropEvent) {  
            var node = dropEvent.target;    // 目标结点  
            var data = dropEvent.data;      // 拖拽的数据  
            var point = dropEvent.point;    // 拖拽到目标结点的位置  
            // 如果data.node为空,则不是tree本身的拖拽,而是从grid到tree的拖拽,需要处理  
            if(!data.node) {  
                switch(point) {  
                    case 'append':  
                        // 添加时,目标结点为node,子结点设为空  
                        ddFn(node, null, data.selections);  
                        break;  
                    case 'above':  
                        // 插入到node之上,目标结点为node的parentNode,子结点为node  
                        ddFn(node.parentNode, node, data.selections);  
                        break;  
                    case 'below':  
                        // 插入到node之下,目标结点为node的parentNode,子结点为node的nextSibling  
                        ddFn(node.parentNode, node.nextSibling, data.selections);  
                        break;  
                }  
            }  
其中ddFn方法如下
var ddFn= function(node, refNode, selections) {  
    for(var i = 0; i < selections.length; i ++) {  
        var record = selections[i];  
        node.insertBefore(new Tree.TreeNode({  
            text: record.get('text'),  
            id: record.get('id'),  
            leaf: record.get('leaf'),  
            cls: record.get('cls')  
        }), refNode);  
    }  

当然ddFn里面要根据需要判断是否有重复id等,有重复则不再drop

<think>好的,我现在需要回答用户关于Shmoo测试的问题。首先,用户问的是什么是Shmoo测试,它的原理应用。我需要先理解Shmoo测试的基本概念,然后整理出它的工作原理实际应用场景。 首先,根据提供的引用资料,引用[1]提到Shmoo有助于快速了解故障可能的原因,以及在安装中查找调试的位置。这说明Shmoo测试主要用于芯片测试中的故障分析。接下来,我需要确认Shmoo测试的具体定义,可能需要结合其他资料,但根据现有引用,可以推断Shmoo测试是通过绘制Shmoo来分析芯片在不同电压、频率等参数下的表现,从而找出故障点。 关于原理,Shmoo测试应该涉及参数扫描,比如改变电压或频率,观察芯片的输出是否符合预期。引用[1]提到测试时的失败被分析调试,所以原理可能是在不同条件下测试芯片,生成Shmoo来识别故障模式。 应用方面,引用[1]提到在芯片测试中用于快速定位故障,提高良率。此外,引用[2]提到开路/短路测试帮助诊断测试系统的问题,这可能与Shmoo测试的应用场景相关,比如在测试过程中结合其他测试方法确保设备接触良好,从而准确执行Shmoo测试。 现在需要确保回答结构清晰,分点说明定义、原理应用,并正确引用提供的资料。同时,根据用户要求,生成相关问题,可能需要涉及Shmoo的分析、测试参数、应用领域等。 检查是否需要使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$。但当前问题不涉及数学公式,可能不需要使用。不过如果有相关参数,比如电压V频率f的关系,可能需要公式,但根据现有资料,暂时不需要。 最后,生成相关问题,要围绕Shmoo测试的原理、应用、与其他测试方法的比较等。</think>### Shmoo测试详解 #### 1. 定义与核心概念 Shmoo测试是一种用于半导体芯片测试形化分析方法,通过扫描芯片的关键参数(如电压、频率、时序等),绘制出反映芯片性能边界的“Shmoo”[^1]。其名称来源于卡通形象“Shmoo”,因其形通常呈现不规则形状而得名。 #### 2. 工作原理 - **参数扫描**:对目标参数进行阶梯式调整,例如: - 供电电压 $V_{DD}$ 从0.8V到1.2V以0.01V步进 - 时钟频率 $f_{CLK}$ 从100MHz到2GHz扫描 - **响应检测**:记录芯片在每个参数组合下的测试结果(通过/失败) - **形绘制**:将测试结果映射为二维或三维形,形成特征区域 典型测试流程: ```text 参数配置 → 测试执行 → 数据采集 → 形生成 → 故障分析 ``` #### 3. 关键应用场景 1. **良率提升**:快速定位参数敏感区域(如电压-频率组合的失效边界) 2. **故障隔离**:识别制造缺陷类型(如时序违例、信号完整性等问题) 3. **可靠性验证**:评估芯片在不同工作条件下的稳定性 4. **测试系统校准**:结合开路/短路测试验证探针接触质量[^2] #### 4. 技术特点对比 | 特性 | Shmoo测试 | 传统功能测试 | |---------------|----------------|---------------| | 诊断粒度 | 晶体管级特性 | 模块级功能 | | 测试数据量 | 百万级数据点 | 千级测试向量 | | 分析维度 | 多参数相互作用 | 单参数验证 | ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值