对Extjs下拉列表动态添加和删除数据

激光清洗技术原理与应用解析 激光清洗作为先进的表面处理技术,通过光热效应和光化学效应实现材料表面污染物的精准去除。其核心技术原理涉及激光与物质的相互作用机制,特别是纳秒脉冲激光的高峰值功率特性,能在微米级精度下完成清洗作业。这项技术在工业领域展现出显著的技术价值,既能避免传统化学清洗的环境污染问题,又克服了机械打磨的精度限制。当前主要应用于航空航天精密部件维护、半导体晶圆处理等高附加值场景,其中有限元仿真技术对工艺参数优化起到关键支撑作用。随着智能化集成和超快激光技术的发展,激光清洗正在向更精密、更高效的方向演进。 阅读详情

最近开发中遇到一个问题,就是动态的往下拉列表中添加和删除数据。经过各种查文档加搜索,终于解决了。以下是我的代码:

首先,我需要点击别的模块时动态删除下拉列表中的某些选项,所以添加单击监听事件:

listeners:{
	click:function(){		
		var reportT = me.find('name','reportType')[0].store;//获取名为reportType的下拉列表的store
		if(reportT.getCount()==10){//因为我下拉列表总共十条,为了避免连续点击删除,所以加判断
			var record = reportT.getRange(4, 8);//获取第5到9条数据
			reportT.remove(record);//移出
		}
	}
}
然后,点重置按钮时,我需要还原下拉列表,再将删除的添加回来:

handler:function(btn){
	var reportT = me.find('name','reportType')[0].store;
	if(reportT.getCount()==5){//此时下拉列表只有五条数据,为了避免不断添加,添加判断
		var recordData = Ext.data.Record.create([{name:'code'},{name:'name'}]);
		//从下标为4的位置开始添加
                reportT.insert(4,[new recordData({                
			code: 'gxYwby',   
			name: 'A报表'
		}),new recordData({                
			code: 'gxZzsg',   
			name: 'B报表'
		}),new recordData({                
			code: 'gxZgsh',   
			name: 'C报表'
		}),new recordData({                
			code: 'gxZzzgqr',   
			name: 'D报表'
		}),new recordData({                
			code: 'gxLxhb',   
			name: 'E报表'
		})]);
	}
}
以上就是我的操作过程,因为是刚写完,还不知道实用性怎样,会不会有bug,有待进一步检验。



后记:

在查询过程中看到一篇不错的文章,也粘过来以作参考:

Store.getCount()返回的是store中的所有数据记录,然后使用for循环遍历整个store,从而得到每条记录。

除了使用getCount()的方法外,还可以使用each()函数,如下面的代码所示。

1.   store.each(function(record) {   

2.       alert(record.get('name'));   

3.   });  


Each()可以接受一个函数作为参数,遍历内部record,并将每个record作为参数传递给function()处理。

如果希望停止遍历,可以让function()返回false。

也可以使用getRange()函数连续获得多个record,只需要指定开始和结束位置的索引值,如下面的代码所示。

1.   var records = store.getRange(0, 1);   

2.     

3.   for (var i = 0; i < records.length; i++) {  

4.       var record = records[i];  

5.       alert(record.get('name'));   

6.   }  


如果确实不知道record的id,也可以根据record本身的id从store中获得对应的record,如下面的代码所示。

1.   store.getById(1001).get('name')  


EXT还提供了函数find()和findBy(),可以利用它们对store中的数据进行搜索,如下面的代码所示。

1.   find( String property, String/RegExp value, [Number startIndex], [Boolean anyMatch],[Boolean caseSensitive] )   


在这5个参数中,只有前两个是必须的。

第一个参数property代表搜索的字段名;

第二个参数value是匹配用字符串或正则表达式;

第三个参数startIndex表示从第几行开始搜索;

第四个参数anyMatch为true时,不必从头开始匹配;

第五个参数caseSensitive为true时,会区分大小写。

如下面的代码所示:

1.   var index = store.find('name','g');   

2.     

3.   alert(store.getAt(index).get('name'));  


与find()函数对应的findBy()函数的定义格式如下:

1.   findBy( Function fn, [Object scope], [Number startIndex] ) : Number  


findBy()函数允许用户使用自定义函数对内部数据进行搜索。

fn返回true时,表示查找成功,于是停止遍历并返回行号。

fn返回false时,表示查找失败(即未找到),继续遍历,如下面的代码所示。

1.   index = store.findBy(function(record, id) {  

2.       return record.get('name') == 'girl' && record.get('sex') == 1;  

3.   });   

4.     

5.   alert(store.getAt(index).get('name'));  


通过findBy()函数,我们可以同时判断record中的多个字段,在函数中实现复杂逻辑。

我们还可以使用query和queryBy函数对store中的数据进行查询。

与find和findBy不同的是,query和queryBy返回的是一个MixCollection对象,里面包含了搜索得到的数据,如下面的代码所示。

1.   alert(store.query('name', 'boy'));   

2.     

3.   alert(store.queryBy(function(record) {   

4.       return record.get('name') == 'girl' && record.get('sex') == 1;  

5.   }));  


Ext.data.Store更新store中的数据

可以使用add(Ext.data.Record[] records)向store末尾添加一个或多个record,使用的参数可以是一个record实例,如下面的代码所示。

1.   store.add(new PersonRecord({   

2.       name: 'other',   

3.       sex: 0   

4.   }));  


Add()的也可以添加一个record数组,如下面的代码所示:

1.   store.add([new PersonRecord({   

2.       name: 'other1',   

3.       sex: 0   

4.   }), new PersonRecord({   

5.       name: 'other2',   

6.       sex: 0   

7.   })]);  


Add()函数每次都会将新数据添加到store的末尾,这就有可能破坏store原有的排序方式。如果希望根据store原来的排序方式将新数据插入到对应的位置,可以使用addSorted()函数。它会在添加新数据之后立即对store进行排序,这样就可以保证store中的数据有序地显示,如下面的代码所示。

1.   store.addSorted(new PersonRecord({   

2.       name: 'lili',   

3.       sex: 1   

4.   }));  


store会根据排序信息查找这条record应该插入的索引位置,然后根据得到的索引位置插入数据,从而实现对整体进行排序。这个函数需要预先为store设置本地排序,否则会不起作用。

如果希望自己指定数据插入的索引位置,可以使用insert()函数。它的第一个参数表示插入数据的索引位置,可以使用record实例或record实例的数组作为参数,插入之后,后面的数据自动后移,如下面的代码所示。

1.   store.insert(3, new PersonRecord({   

2.       name: 'other',   

3.       sex: 0   

4.   }));   

5.     

6.   store.insert(3, [new PersonRecord({   

7.       name: 'other1',   

8.       sex: 0   

9.   }), new PersonRecord({   

10.     name: 'other2',   

11.     sex: 0   

12. })]);  


删除操作可以使用remove()和removeAll()函数,它们分别可以删除指定的record和清空整个store中的数据,如下面的代码所示。

1.   store.remove(store.getAt(0));   

2.   store.removeAll();  


store中没有专门提供修改某一行record的操作,我们需要先从store中获取一个record。对这个record内部数据的修改会直接反映到store上,如下面的代码所示。

1.   store.getAt(0).set('name', 'xxxx');  


修改record的内部数据之后有两种选择:执行rejectChanges()撤销所有修改,将修改过的record恢复到原来的状态;执行commitChanges()提交数据修改。在执行撤销和提交操作之前,可以使用 getModifiedRecords()获得store中修改过的record数组。

与修改数据相关的参数是 pruneModifiedRecords,如果将它设置为true,当每次执行删除或reload操作时,都会清空所有修改。这样,在每次执行删除或 reload操作之后,getModifiedRecords()返回的就是一个空数组,否则仍然会得到上次修改过的record记录


Ext.data.Store加载及显示数据

store创建好后,需要调用load()函数加载数据,加载成功后才能对store中的数据进行操作。load()调用的完整过程如下面的代码所示。

1.   store.load({   

2.       params: {start:0,limit:20},   

3.       callback: function(records, options, success){  

4.           Ext.Msg.alert('info', '加载完毕');   

5.       },   

6.       scope: store,   

7.       add: true  

8.   });  


1. params是在store加载时发送的附加参数。

2. callback是加载完毕时执行的回调函数,它包含3个参数:records参数表示获得的数据,options表示执行load()时传递的参数,success表示是否加载成功。

3. Scope用来指定回调函数执行时的作用域。

4. Add为true时,load()得到的数据会添加在原来的store数据的末尾,否则会先清除之前的数据,再将得到的数据添加到store中。

一般来说,为了对store中的数据进行初始化,load()函数只需要执行一次。如果用params参数指定了需要使用的参数,以后再次执行reload()重新加载数据时,store会自动使用上次load()中包含的params参数内容。

如果有一些需要固定传递的参数,也可以使用baseParams参数执行,它是一个JSON对象,里面的数据会作为参数发送给后台处理,如下面的代码所示。

1.   store.baseParams.start = 0;   

2.   store.baseParams.limit = 20;  


为store加载数据之后,有时不需要把所有数据都显示出来,这时可以使用函数filter和filterBy对store中的数据进行过滤,只显示符合条件的部分,如下面的代码所示。

1.   filter( String field, String/RegExp value, [Boolean anyMatch], [Boolean caseSensitive] ) : void  


filter()函数的用法与之前谈到的find()相似,如下面的代码所示。

1.   store.filter('name', 'boy');  


对应的filterBy()与findBy()类似,也可以在自定义的函数中实现各种复杂判断,如下面的代码所示。

1.   store.filterBy(function(record) {   

2.       return record.get('name') == 'girl' && record.get('sex') == 1;  

3.   });  


如果想取消过滤并显示所有数据,那么可以调用clearFilter()函数,如下面的代码所示。

1.   store.clearFilter();  


如果想知道store上是否设置了过滤器,可以通过isFiltered()函数进行判断。


Ext.data.Store其他功能

除了上面提到的数据获取、排序、更新、显示等功能外,store还提供了其他一些功能函数。

1.   collect( String dataIndex, [Boolean allowNull], [Boolean bypassFilter] ) : Array  


collect函数获得指定的dataIndex对应的那一列的数据,当allowNull参数为 true时,返回的结果中可能会包含null、undefined或空字符串,否则collect函数会自动将这些空数据过滤掉。当 bypassFilter参数为true时,collect的结果不会受查询条件的影响,无论查询条件是什么都会忽略掉,返回的信息是所有的数据,如下面的代码所示。

1.   alert(store.collect('name'));  


这样会获得所有name列的值,示例中返回的是包含了'boy'和'girl'的数组。

getTotalCount()用于在翻页时获得后台传递过来的数据总数。如果没有设置翻页,get- TotalCount()的结果与getCount()相同,都是返回当前的数据总数,如下面的代码所示。

1.   alert(store.getTotalCount());  


indexOf(Ext.data.Record record)和indexOfId(String id)函数根据record或record的id获得record对应的行号,如下面的代码所示。

1.   alert(store.indexOf(store.getAt(1)));   

2.   alert(store.indexOfId(1001));  


loadData(object data, [Boolean append])从本地JavaScript变量中读取数据,append为true时,将读取的数据附加到原数据后,否则执行整体更新,如下面的代码所示。

1.   store.loadData(data, true);  


Sum(String property, Number start, Number end):Number用于计算某一个列从start到end的总和,如下面的代码所示。

1.   alert(store.sum('sex'));  


如果省略参数start和end,就计算全部数据的总和。

store还提供了一系列事件(见下表),让我们可以为对应操作设定操作函数。

表 store提供的事件

事件名

参  数

add

( Store this, Ext.data.Record[] records, Number index )

beforeload

( Store this, Object options )

clear

( Store this )

datachanged

( Store this )

load

( Store this, Ext.data.Record[] records, Object options )

loadexception

()

metachange

( Store this, Object meta. )

remove

( Store this, Ext.data.Record record, Number index )

update

( Store this, Ext.data.Record record, String operation )


 

var storeCddm=new Ext.data.Store({

    url:getAppPath()+'/bmcdxx00.do?method=QueryDataByYYDWDM',

    baseParams:{},

    reader:new Ext.data.JsonReader({

        totalProperty:'totalProperty',

        root:'rows',

        id:'BH0000'

    },[

       'BH0000',

       'MC0000',

       'YYDWDM'

       ])

});

var request = {strYydwdm:Ext.getCmp('YYDWDMS').getValue()};

storeCddm.reload({params:request});

文章出处: 点我带你去看原文章哦












                              

EXTJS动态树实现:节点的创建、编辑和管理 EXTJS是基于JavaScript的一套富互联网应用(RIA)解决方案,它为开发者提供了一整套可视化组件,用于构建交互式的web应用。EXTJS不仅支持传统的桌面应用布局,还兼容移动设备,使其能够创建响应式设计的应用程序。作为一个成熟的前端框架,EXTJS具有高度的模块化和丰富的用户界面组件,可以大大加快开发速度并提高开发质量。其核心是基于MVC(模型-视图-控制器)架构,有助于实现代码的组织和分离,使复杂应用的开发变得更加清晰和有序。 阅读详情

相关推荐

银河麒麟v10离线安装docker二进制包

因为工作需要在银河麒麟v10系统上离线部署k8s集群,k8s部署的前提是具有docker环境,因此离线安装docker成为必然。 1.下载docker包:Index of linux/static/stable/x86_64/ 选择自己合适的版本,我下载的是20.10.7 选择自己放置docker包的路径进行解压: cd /home/huawei/zq tar -zxvf docker-20.10.7.tgz 2. 给docker包解压出来的docker文件夹下的二进制文件赋..

q_hsolucky的博客 7684

利用Ajax实现select标签下拉框删除一个option后实时更新的简单应用

Ajax的简单应用 什么是Ajax Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 Ajax的常用应用方式 为了简化操作,一般来说都是使用Jque...

lo_olo_ol的博客 765

HMC5883L磁力计在STM32F4上的I2C驱动与数据校准实战

本文详细介绍了HMC5883L磁力计在STM32F4平台上的I2C驱动开发与数据校准实战。通过解析寄存器配置、数据读取处理和椭圆拟合校准算法,帮助开发者实现精准的地磁测量,特别适用于无人机导航和机器人系统中的航向确定与陀螺仪漂移修正。

2y3u4i5o6p的博客 1037

Extjs4 下拉框清空已选数据插件

Ext.define('Ext.ux.ClearValuePlugin', { alias: 'plugin.clearvalueplugin', trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger', trigger2Cls: Ext.baseCSSPrefix + 'form-arrow-trigger',

疯狂猫 2165

Openclaw Onboarding向导全攻略——如何配置你的第一个AI助手

很多新手在成功运行 `openclaw --version` 后,面对黑底白字的终端就陷入了迷茫:“安装好了,然后呢?” 本篇我们就彻底解决这个问题,带你完整走完 `openclaw onboard` 交互式初始化配置向导的每一步,从“安装完成”到“真正能用”,只差这一个向导的距离。 本文为2026年3月最新版,适配OpenClaw v2026.2.x 稳定版,所有步骤均经过实测验证,可直接落地。

夏日清风 1917

X电容与Y电容,看这一篇就够了

本文详细介绍了X电容与Y电容的定义、作用、位置、分类,以及它们在实际应用中的容值选取和计算方法。通过汽车电子应用和X电容放电电路的实例,帮助读者深入理解这两种安规电容的重要性。文章还探讨了电容放电电阻的计算,确保符合安全规范。

让你爱上电路设计 7018

用JS简单实现级联下拉框(添加选项、删除、清空)

JavaScript简单实现的级联下拉框小功能记录 这里用"省份与城市"作为级联对象,在HTML头部来引用JS代码来实现。 实现思路: 以下内容,我们省份用prov表示,城市用city表示。 (1)在JS中我们可以使用document.getElement(id)来获取指定id的标签元素。 (2)对于<select></ select>标签,获取到的则这个下拉框中的定位符。...

码农米格的博客 4216

一文带你了解什么是RDMA

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种起源于高性能计算领域的通信技术,如今已广泛应用于数据中心。该技术使得用户程序能够绕过操作系统内核及CPU,直接与网络接口卡(NIC)交互,实现网络通信。这种方式不仅大幅提升了通信带宽,还显著降低了网络延迟,优化了整体性能。

嵌入式技术开发 6016

java下拉框怎么清空_可编辑的组合框JComboBox实现可删除下拉选项效果

?? JComboBox是Java的Swing开发中比较常用的组件,但是默认的功能比较简单,在开发一个自己的小工具的时候,就希望能够通过上下方向键控制下拉框里Item的选中与否,并且希望能通过按Delete键对选中的Item进行删除,但是JComboBox从设计上就禁掉了对下来框里Item的各种事件的操作,所以实现起来就要换个思路,不能对下拉框里的Item进行绑定事件,因为他无法获取焦点,而焦点一...

weixin_34062155的博客 2733

SAP Fiori 从技术上而言到底包含哪些组件?

SAP Fiori是企业级UX设计的系统化解决方案,基于五大原则构建:角色导向(Role-based)、自适应(Adaptive)、简洁(Simple)、一致(Coherent)和愉悦(Delightful)。其技术实现包含SAPUI5开发框架、Fiori Launchpad统一入口、OData服务网关等核心组件,通过标准化设计模式与开发工具链,显著提升企业应用的用户体验和开发效率。典型案例显示,遵循Fiori原则可缩短30%以上的操作时长,降低50%的培训成本。该体系既保持跨设备一致性,又支持业务场景的深

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 223

如何对正射影像DOM(卫星影像、无人机航拍影像)进行拼接、合并以及去黑边(附 Global Mapper Pro 24.0 安装包(中文注册版))

为什么要对正射影像DOM进行拼接?影像去黑边、影像拼接的操作和步骤。

从地图看世界的专栏 4300

html中下拉列表监听事件,ExtJS 下拉框监听事件、日期选择器监听事件、实现动态给items添加删除数据...

本文将为您描述ExtJS 下拉框监听事件、日期选择器监听事件、实现动态给items添加删除数据,具体实现方法:1、下拉框下拉框选择时,触发事件的方法:在 Ext.form.ComboBox 组件中新增 listeners 监听事件基本写法为: listeners{'事件',function(){处理方法}}listeners:{select:{fn:function(combo,record,in...

weixin_39942637的博客 800

Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发

本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1297

EXTjs3 checkBoxGroup 的动态添加删除

最近新学ext,被checkBoxGroup 的动态添加删除搞的痛不欲生,在不停的尝试之后终于搞定了~ 从后台拿数据再用ajax稍微改造下就可以了。 效果图:     test.js     function checkAll(groupId){ var group = Ext.getCmp(groupId); var length = group.items.getCou...

xxy_tidy_sky的专栏 513

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ExtJs中实现动态给items添加删除数据

1,拿到我们要操作的items对象 var _item = Ext.getCmp('changeTeachItem'); 2,删除items中元素,给要删除的指定一个id _item.remove(Ext.getCmp('lineTeach')); 3,给items中添加元素,同样也要指明一个id _item.add(lineBook_L); 4,不要忘记给items doLa

坚持、努力、忍耐 6659

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

extjs动态添加或删除控件

背景:extjs 3.4 需求:添加或删除textarea 代码: var i =0; this.addButton= new Ext.Panel({ layout:'hbox', border:false, scope:this, items:[{ xtype:'button', text:'增加', handler:function(){ v

笑看人生的专栏 8597

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ExtJS动态添加和删除tab标签实例

ExtJS中的标签在网页中经常用到,它可以将已有的div布局成tab切换的形式,也可以全新生成tab切换布局。它在ExtJS中的全称是Ext.tab.Panel,xtype是tabpanel,功能比较丰富,如动态添加tab,动态删除tab等等。下面给出一个例子,包括生成tabpanel、点击按钮添加tab并激活tab、点击按钮删除激活状态的tab。   生成tabpanel: var

jazywoo_在路上 2851

extjs4 grid 动态插入数据行

extjs4 grid 动态插入数据行

hhduyc的博客 2327

ext总对form表单items的结构动态添加/删除

在工作中有这样一个需求:   显示访问记录情况(包括访问状态,  最后访问时间等信息 ),  初始时items只有8个控件,  当多一条数据就需要动态的添 加一个控件,因为每次查询都对items结构进行了修改, 为了不影响下次查询的显示结果,  需要回复items的结构到初始 状态 ,这时候就需要删除多余控件, 操作中遇到的问题:  添加成功, 删除控件, 仍然在页面显示删除的

小蚂蚁扛大象 5561

EXTJS动态刷新chart的fields

EXTJS动态刷新chart的fields   最近遇到一个需求,chart要展示的曲线将来可能是曲线的条数,名字,数据什么的都会改变,最主要的是要在同一个chart处能够通过下来选项框,选择任意展示数据曲线(也许一开始可能觉得,那我定义多个chart,每个chart对应一个下拉选项不就好了,但是,问题在于,现在下拉选项也是未来可能会动态增加的) Chart

叶落无痕,枫过有情…… 2286

ExtJS中panel动态删除子组件及其label

今天小小的成功让我兴奋不已。     在ExtJS中的panel面板中实现动态删除组件及其label,panel命名为login,实现代码如下:                                var itemLength=login.items.length;//获取需要删除的组件个数,组件个数随着删除的过程会动态减少,牢记。必须执行三次删除来删除所有组件

liushuoboco的专栏 8309

extjs4 grid 多选、添加复选框、动态添加删除数据

grid多选属性:multiSelect: true添加复选框:首先定义var selectModel = Ext.create(‘Ext.selection.CheckboxModel’); 然后设置grid的selModel属性。动态添加删除数据:store.insert();和store.remove();//示例代码:var arows = Ext.getCmp('dailytestuff

qwer__mei98382的专栏 2210

EXTJS动态树的实现

EXTJS动态树的实现举例 一、描述:通过dwr实现JS与后台的交互,从而实现动态树中叶子节点和目录节点的增加和编辑、以及节点的拖曳,节点的增删和拖曳都会改变自身以及它所在的目录节点下的相关节点的序号,能使得后台与前台同步。这个序号借助了tree中node的index。 1、相关基础: servlet、mysql、dwr、json 2、涉及的ExtJs中部分知识点: menu、tree、windo

Jack的专栏 2759

extjs4.2 中Viewport动态添加或删除panel中的items

显示的viewport var viewPort = new Ext.Viewport({ id:'mainView', layout : "border", items : [{ xtype: 'panel', // title: 'Bottom Inner Panel',

雨陆聪辰的博客 2934

extjs 动态添加删除panel

<br />在Ext.Viewport中动态添加删除panel (转载)  (2009-11-12 11:00:21)转载标签:  杂谈分类: extjs在Ext.Viewport中动态添加删除panel<br />今天一个朋友问,能不能在Viewport中动态添加删除panel?<br />刚听到的时候,感觉挺容易的啊,于是乎,写了下来,在Ext.Viewport中动态添加/删除panel的方法.<br />viewport代码如下:view sourceprint?01.//------------

3190
上一篇: 如何学习javascript
下一篇: 物化视图的一般用法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值