`
liwu556677
  • 浏览: 1374 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Extjs gridpanel中动态生存ColumnModel为什么就不能够显示列能!有源码供参考!

阅读更多
为什么我动态生成ColumnModel不会显示列呢?虽然列不能够显示 但是里面的数据还是能够显示,并且也是动态有多少列就显示了多少列,请教大家帮忙一下,希望各位大侠的解答和帮助。谁帮我解决了,我请你糖哦!嘻嘻……
备注:resMess为我后台返回的报文,这个报文包含了我要显示的表头(显示列)和grid里面要显示的数据。
function ReportListShow(resMess){
    var tempStr = setMessage(resMess);
    if(getFieldValue(tempStr,"erorcd",0).trim()=='0000'){
        scrollBar.hide();
        if(Str == "outExecl"){
            return Ext.MessageBox.alert('提示','导出Excel成功!',function(){
                 location = "../ExportExcle.jsp?filename="+reportName+"&operid="+Fuserid;
            }); 
        }
        var oneStr = resMess.indexOf('[');
        if(oneStr == -1){
            return Ext.MessageBox.alert('提示','查询结果为空!');
        }
        var twoStr = resMess.substring(0,oneStr);        //第一张表记录(包含表头和对应的字段)
        var threeStr = resMess.substring(oneStr + 1);
        
        var frouStr = threeStr.indexOf('[');
        var fiveStr = threeStr.substring(0,frouStr);    //第二张表记录(包含页数)
        var tempStrs = setMessage(fiveStr);
        contPages = getFieldValue(tempStrs,"totalnumber",0);
        countPage.setText(contPages);
        document.getElementById('page').value = m;
        if(parseInt(contPages) > 1){
            downPage.enable();
        }
        
        var sixStr = threeStr.substring(frouStr + 1);    //第三张表记录(报表信息数据)
        var tableData = getParsing(setMessArray0(sixStr));
        if(tableData != null){
            execlRept.enable();
        }else if(tableData == null){
            return Ext.MessageBox.alert('提示','对不起!您输入的参数值无信息返回!');
        }
        var tableHeadData = setMessArray(twoStr);        //截取表头字符串

        var gridHeader = [tableHeadData.length-1];
        var readerFildeName = [tableHeadData.length-1];
        for(var a=0;a<tableHeadData.length;a++){
            if(a==0){
                gridHeader[a] = '[{header:"'+tableHeadData[a][1]+'",sortable:true,dataIndex:"'+tableHeadData[a][0].toLowerCase()+'"}';
                readerFildeName[a] = '[{name:"'+tableHeadData[a][0].toLowerCase()+'",mapping:'+a+'}';
            }else if(a==tableHeadData.length-1){
                gridHeader[a] = '{header:"'+tableHeadData[a][1]+'",sortable:true,dataIndex:"'+tableHeadData[a][0].toLowerCase()+'"}]';
                readerFildeName[a] = '{name:"'+tableHeadData[a][0].toLowerCase()+'",mapping:'+a+'}]';
            }else{
                gridHeader[a] = '{header:"'+tableHeadData[a][1]+'",sortable:true,dataIndex:"'+tableHeadData[a][0].toLowerCase()+'"}';
                readerFildeName[a] = '{name:"'+tableHeadData[a][0].toLowerCase()+'",mapping:'+a+'}';
            }
        }
        
        var cm = new Ext.grid.ColumnModel(gridHeader);
        var readerstext = Ext.data.Record.create(readerFildeName);
        var repDefStore = new Ext.data.Store({
            proxy:new Ext.data.MemoryProxy(tableData),
            reader:new Ext.data.ArrayReader({},readerstext)
        })
        repDefStore.load();
            
        var repDefGrid = new Ext.grid.GridPanel({
            renderTo:'repShow'+(index),
            cm:cm,
            store:repDefStore,
            loadMask:{msg:'数据正在加载中……'},
            autoHeight:true
        });
        
    }else if(getFieldValue(tempStr,"erorcd",0).trim()=='9000'){
        scrollBar.hide();
        return Ext.MessageBox.alert('查询失败',getFieldValue(tempStr,"erortx",0));
    }
}
 
 
 
 
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:0  
分享到:
评论
1 楼 liwu556677 2010-07-20  
我以解决了此问题关键代码我把它贴出来和大家一起分享:
gridHeader = [new Ext.grid.RowNumberer(),new Ext.grid.CheckboxSelectionModel()];
		readerFildeName = [];
		for(var a=0;a<tableHeadData.length;a++){
			gridHeader.push({
				header:tableHeadData[a][1],
				dataIndex:tableHeadData[a][0].toLowerCase(),
				sortable:true,
				renderer:gridFontColor,
				width:160
			})
			readerFildeName.push({
				name:tableHeadData[a][0].toLowerCase(),
				mapping:a
			})
		}
		
		var repShowStore = new Ext.data.Store({
			proxy:new Ext.data.MemoryProxy(textData),
			reader:new Ext.data.ArrayReader({},readerFildeName)
		})
		repShowStore.load();
		    
		var repDefGrid = new Ext.grid.GridPanel({
			id:'selRepShow'+(index),
			renderTo:'repShow'+(index),
			cm:new Ext.grid.ColumnModel(gridHeader),
			store:repShowStore,
			loadMask:{msg:'数据正在加载中……'},
			height:Ext.get("repShowPanel").getHeight()-3,
			listeners:{'cellclick':
				function(grid,rowIndex,columnIndex,e){
					gridClick();
				}
			}
		});

相关推荐

    EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化

    在EXTJS中,ColumnModel是用来定义GridPanel列结构和行为的关键部分。这篇博客"EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化"探讨了如何使GridPanel的列宽根据数据内容自动调整,以确保最佳的用户界面体验...

    ExtJs GridPanel双击事件获得双击的行

    GridPanel由Store(数据存储)和ColumnModel(列模型)组成,它们定义了数据源和显示样式。在创建GridPanel时,我们需要配置这两个部分,例如: ```javascript var store = Ext.create('Ext.data.Store', { fields...

    给Extjs的GridPanel增加“合计”行

    在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加‘合计’行”将指导我们如何实现这一功能。 首先,我们需要...

    extjs 实现动态表头

    标题“extjs 实现动态表头”表明我们要讨论的是如何在ExtJS环境中构建一个能够动态改变列头的表格。动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了...

    ExtJS介绍以及GridPanel

    3. 创建列模型(ColumnModel):定义GridPanel的列,包括列的标题、数据字段绑定、宽度等,例如`Ext.grid.ColumnModel`。 4. 实例化GridPanel:配置GridPanel的各种属性,如高度、宽度、是否可拖动列等,然后将...

    ExtJs GridPanel延时加载.rar

    在给定的"ExtJs GridPanel延时加载.rar"文件中,主要涉及的核心概念是ExtJs中的GridPanel组件以及延时加载技术。GridPanel是ExtJs中一个非常重要的组件,它用于展示表格数据,而延时加载则是一种优化大量数据处理的...

    ExtJS的GridPanel导出excel文件

    ExtJS的GridPanel导出excel文件,方便快捷易懂!

    Extjs入门教程(treePanel和GridPanel)

    在集成TreePanel和GridPanel时,可能涉及到的概念有:将TreePanel的节点与GridPanel的数据关联,实现点击树节点时动态加载或更新GridPanel的数据,以及可能的父子数据联动操作。 在实际应用中,你可能会学习到以下...

    extjs动态生成表格,前台+后台

    在本文中,我们将深入探讨如何使用ExtJS框架在前端动态生成表格,并结合后端数据进行展示。ExtJS是一个强大的JavaScript库,专用于构建富客户端Web应用程序,尤其在创建交互式用户界面方面表现突出。动态生成表格是...

    Extjs中的GridPanel

    总结起来,ExtJS 中的 GridPanel 是一个功能强大且灵活的数据展示组件,它为Web应用提供了丰富的数据管理和用户交互能力。通过熟练掌握 GridPanel 的使用,开发者能够创建出功能丰富、用户体验优秀的数据驱动应用。

    grid动态生成列参考!

    在ExtJS中,`GridPanel`是用于展示表格数据的核心组件,它通过`ColumnModel`对象管理列的显示和属性。`ColumnModel`接受一个包含列配置的JavaScript数组作为参数,这为动态生成列提供了可能。当需要根据特定条件或...

    extjs gridpanel例子和简单应用

    - `ColumnModel`定义了`GridPanel`中的列配置,包括每列的标题、宽度、排序属性等。它是`GridPanel`展示数据的关键配置对象。 5. **PagingToolbar** - `PagingToolbar`用于实现分页功能。它可以根据指定的`Store`...

    ExtJS 表格面板GridPanel完整例子

    ExtJS表格面板(GridPanel)是Sencha Ext JS框架中的一个核心组件,它用于展示大量结构化数据。在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们...

    Extjs让Gridpanel组件自动滚屏

    刚学习了Ext的开发框架,发现这个东西还是挺不错的。 后来公司让改变一个Gridpanel的展现方式,要求实现滚屏的效果。于是我就开始找API相关的功能...为了给大家提供方便,这里我把我的探索结果发出来供大家借鉴参考。

    ExtJS锁定列头源码

    ExtJS锁定列头源码 ExtJS锁定列头源码

    通过Servlet让Extjs GridPanel 显示数据库数据.docx

    通过Servlet(Java Web应用的基础组件之一)获取数据并传递给Extjs,可以使GridPanel动态地显示数据库中的信息。 #### 二、准备工作 1. **开发环境**:确保安装了JDK、Tomcat服务器以及Eclipse或IntelliJ IDEA等...

    ExtJs GridPanel 操作

    ExtJS GridPanel是Sencha ExtJS框架中的一个核心组件,用于创建数据网格,展示大量结构化数据。在本文中,我们将深入探讨GridPanel的操作,包括其功能、配置选项以及如何扩展GridPanel以满足复杂需求。 首先,...

    ExtJS4.2源码+实例

    3. **动态选择显示哪些列**:用户可以根据需要动态隐藏或显示表格的列,这种灵活性增强了用户体验,使用户能够专注于他们关心的数据。 4. **本地及远程分页**:ExtJS 支持两种分页模式:本地分页和远程分页。本地...

    Extjs gridpanel 出现横向滚动条问题的解决方法

    在使用ExtJS开发Web应用程序时,经常会遇到在GridPanel中数据列过多,导致横向滚动条自动出现的问题。这个问题主要是由于GridPanel的宽度不足以容纳所有的列宽,因此浏览器会自动显示横向滚动条以便用户查看全部数据...

Global site tag (gtag.js) - Google Analytics