找了快1个小时,就是不知道错误在哪里。。。郁闷 我在鼠标左侧点击tree节点,在右侧创建一个标签页,这个已经能够实现,于是我再在新建的标签页里嵌套一个Grid。 奇怪的问题出现了。。 FF和IE下都没报错。但是Grid就是不显示。本来我以为我代码错误。于是我狂找我的代码问题,无意中关掉FF的firbug插件界面,grid就现实出来了。。。原来只要我的窗口发生任何变化Grid才会显示出来。 请问这是我代码问题还是bug?如何解决? 补充一下,我直接在TabPanel里面用items管理grid对象并没问题。但是我用添加事件后在其中管理就出问题了。 文件都是封装在类包里面的。所以只贴关键部分 这是监听事件。 Java代码 listeners:{ 'click':function(node, event) { event.stopEvent(); //把根节点的选择判断去除 if(node.text=="SamPeng" || node.text == "文章管理" || node.text == "产品管理" || node.text == "信息管理" || node.text == "来访管理"){ }else{ var n = main.getComponent(node.id); if (!n) { //判断是否已经打开该面板 //如果是按的文章列表,新建一个列表对象并且丢进新的标签页 if(node.text == "文章列表"){ var grid=new SamPeng.account.list(); n = main.add({ 'id':node.id, 'title':node.text, items: [{layout:"fit",items:grid}] });} } main.setActiveTab(n); } } listeners:{ 'click':function(node, event) { event.stopEvent(); //把根节点的选择判断去除 if(node.text=="SamPeng" || node.text == "文章管理" || node.text == "产品管理" || node.text == "信息管理" || node.text == "来访管理"){ }else{ var n = main.getComponent(node.id); if (!n) { //判断是否已经打开该面板 //如果是按的文章列表,新建一个列表对象并且丢进新的标签页 if(node.text == "文章列表"){ var grid=new SamPeng.account.list(); n = main.add({ 'id':node.id, 'title':node.text, items: [{layout:"fit",items:grid}] });} } main.setActiveTab(n); } } 然后是我的tab面板创建类 Java代码 * Copyright(c) -, SamPeng Inc. */ package("SamPeng.panel"); /** * 作用: 用来创建中间的主显示面板 * 作者:SamPeng * 时间:年9月日1:: */ SamPeng.panel.main = function(config){ var config=config || {}; var deconfig={ renderTo:'mainlay', width:, height:, activeTab:0, plain: true, border: true, tabPosition: 'top', frame: true, autoScroll: true, enableTabScroll:true,//超过宽度就自动两边多出滚动条 items:[{ title:"首页" } ] } Ext.applyIf(config,deconfig); SamPeng.panel.main.superclass.constructor.call(this,config); } Ext.extend(SamPeng.panel.main,Ext.TabPanel); * Copyright(c) -, SamPeng Inc. */ package("SamPeng.panel"); /** * 作用: 用来创建中间的主显示面板 * 作者:SamPeng * 时间:年9月日1:: */ SamPeng.panel.main = function(config){ var config=config || {}; var deconfig={ renderTo:'mainlay', width:, height:, activeTab:0, plain: true, border: true, tabPosition: 'top', frame: true, autoScroll: true, enableTabScroll:true,//超过宽度就自动两边多出滚动条 items:[{ title:"首页" } ] } Ext.applyIf(config,deconfig); SamPeng.panel.main.superclass.constructor.call(this,config); } Ext.extend(SamPeng.panel.main,Ext.TabPanel); Grid的就只贴数据源和属性的了。 Java代码 /******************************************************* * 为表格建立数据源 * 链接后台,并且按每一页的数据列表返回 * 用Json数据格式传递 *******************************************************/ this.dataStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'php/article_list.php', disableCaching:false }), reader: new Ext.data.JsonReader({ root: 'results', totalProperty: 'total', id:'id' },[ {name: 'id'}, {name: 'name'}, {name: 'typename'}, {name: 'time'}, ]) }); this.dataStore.load({params:{start:0, limit:this.myPageSize}}); 。。。 。。。省略很多 。。。 /******************************************************* * 构造编辑列表面板(GridPanel) *******************************************************/ SamPeng.account.list.superclass.constructor.call(this, { id: 'list-account-panel', ds: this.dataStore, cm: art_cm, sm: selectBoxModel, height:, tbar: pagingbar, bbar: menubar, loadMask: {msg: '读取数据中 ...'}, enableColumnHide: false, autoScroll:true //region:'center' }); Ext.extend(SamPeng.account.list, Ext.grid.GridPanel, { reload : function() { this.dataStore.load({params:{start:0, limit:this.myPageSize}}); }, // 调用删除数据 // 服务器通过接受参数返回删除的数据 deleteData : function (jsonData) { this.dataStore.load({params:{start:0, limit:this.myPageSize, delData:jsonData}}); } /******************************************************* * 为表格建立数据源 * 链接后台,并且按每一页的数据列表返回 * 用Json数据格式传递 *******************************************************/ this.dataStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'php/article_list.php', disableCaching:false }), reader: new Ext.data.JsonReader({ root: 'results', totalProperty: 'total', id:'id' },[ {name: 'id'}, {name: 'name'}, {name: 'typename'}, {name: 'time'}, ]) }); this.dataStore.load({params:{start:0, limit:this.myPageSize}}); 。。。 。。。省略很多 。。。 /******************************************************* * 构造编辑列表面板(GridPanel) *******************************************************/ SamPeng.account.list.superclass.constructor.call(this, { id: 'list-account-panel', ds: this.dataStore, cm: art_cm, sm: selectBoxModel, height:, tbar: pagingbar, bbar: menubar, loadMask: {msg: '读取数据中 ...'}, enableColumnHide: false, autoScroll:true //region:'center' }); Ext.extend(SamPeng.account.list, Ext.grid.GridPanel, { reload : function() { this.dataStore.load({params:{start:0, limit:this.myPageSize}}); }, // 调用删除数据 // 服务器通过接受参数返回删除的数据 deleteData : function (jsonData) { this.dataStore.load({params:{start:0, limit:this.myPageSize, delData:jsonData}}); } 谢谢各位大侠了! 问题状况是我浏览器不动,Grid死活不显示,浏览器一变,Grid就出来了。而且是按照我设定的参数大小显示的。不明白倒底问题出在哪里。只有这么多分了。望指教 本来以为是代码有问题,看Firebug没有报错,并且观察Firebug确实从服务端取得了数据。搞了很久没有想出问题,但是什么也不干,把窗口最小化再最大化的时候,数据又出来了!!!这可能是Extjs的一个Bug,从网上找类似的解决方法,找到了这个:,后来又和qiuye大侠进行了沟通终于搞定。 其实就是布局刷新的问题,只需将最外层的容器重新render一下就可以了。最外层的容器一般就是类似于viewport的东东了,刚开始不知道,一直重新render包含grid的panel,没有效果,重新render viewport一切OK了!
推荐整理分享extjs grid取到数据而不显示的解决(gridview获取列数据),希望有所帮助,仅作参考,欢迎阅读内容。
![extjs grid取到数据而不显示的解决(gridview获取列数据)](https://www.jiuchutong.com/image/20240129/1706502412.jpg)
文章相关热门搜索词:js获取datagrid中列值,gridview获取某个单元格,ext.grid,gridview获取某个单元格,ext获取grid所有数据,js获取datagrid中列值,ext.grid,ext获取grid所有数据,内容如对您有帮助,希望把文章链接给更多的朋友!
ExtJS 简介 让你知道extjs是什么 (wlr的blog应用)(ExtJS的表格控件)(不同主题的ExtJS弹出框效果)ExtJS是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框
ExtJs 学习笔记 Hello World!第1/2页 在了解基础后,可能会用Ext+ajax开发一个简单的小项目,会一点一滴的讲解项目开发过程,希望能给大家带来收获!因为我本人也在学习这个框架,所
ExtJs 学习笔记基础篇 Ext组件的使用第1/2页 天介绍一下Ext中组件举几个简单的例子做说明。注意:文章内容有些摘自本人学习过程中看到的资料。Ext2.0对框架进行了非常大的重构,其中最重要的