ExtJS GridPanel的ColumnModel 动态加载
var colM = "company,id,flyline";
var colMArr = colM.split(",");
var colLength = colMArr.length;
var colMArray = new Array();
for(var i=0; i<colLength; i++) {
colMArray[i] = {header:colMArr[i],width: 75,dataIndex:fieldArray[i]}
//此处的fieldArray[i]是fields的数据
}
//然后colMarray数组即是我们要动态构造的那个ColumnModel的参数,此处的动态的意
//思是colM可以从request中获取,然后用来动态创建header即表头信息,同
//理dataIndex也是一样的
var column = new Ext.grid.ColumnModel(colMArray);
//然后GridPanel中的制定cm属性值为column即可
var storeCpye = new Ext.data.GroupingStore({
proxy : new Ext.data.HttpProxy({
url : 'cxgl_cpye.app?dateTime=' + new Date().getTime() + '&subTranCode=list'
}),
reader : new Ext.data.JsonReader({
root : 'hstamcx',
totalProperty : "results",
fields : ["khbh","bankacc","fundacc","dxjgdm","cpdm","tazh"]
}),
sortInfo : {
field : 'cpdm',
direction : 'DESC'
},
groupField : 'cpdm'
});
var colMArray = new Array();
colMArray = [{header : "产品代码", dataIndex : "cpdm", width : 100},
{header : "代销机构代码", dataIndex : "dxjgdm", width : 100},
{header : "客户编号", dataIndex : "khbh", width : 100},
{header : "理财账号", dataIndex : "bankacc", width : 100},
{header : "客户资金账号", dataIndex : "fundacc", width : 100}
var colQd = new Ext.grid.ColumnModel(colMArray);
// GRID定义
var gridCpye = new Ext.grid.GridPanel({
id : 'cpye_grid',
title:'[产品余额]查询',
height : 800,
stripeRows : true,
bodyStyle : 'width:100%',
disableSelection : true,
cm : colQd,
viewConfig : {
forceFit : false
},
store : storeCpye,
iconCls : 'details',
animCollapse : true,
trackMouseOver : false,
loadMask : {
msg : '正在加载[产品余额]信息,请稍侯……'
},
//selModel : smQd,
selModel : new Ext.grid.RowSelectionModel({singleSelect:true}),
tbar : ['-',new Ext.form.Label({
text : '产品代码:'
}),new Ext.form.TextField({
id : 'cpdm',
name : 'cpdm',
width : 130
}),'-',new Ext.form.Label({
text : '代销机构代码:'
}), new Ext.form.TextField({
id : 'dxjgdm',
name : 'dxjgdm',
width : 130
}), '-', {
pressed : true,
text : ' 查 询 ',
iconCls : 'yes',
handler : selinfo
},'-',new Ext.Toolbar.Fill(),'-',new Ext.form.Label({
text : ' 查询方式: '
}),new Ext.form.Radio({
id:"cpdm_radio",
name : "select_method",
inputValue : "cpdm desc,dxjgdm desc",
checked : true,
boxLabel : " 产 品 "
}),
new Ext.form.Radio({
id:"dxjgdm_radio",
name : "select_method",
inputValue : "dxjgdm desc,cpdm desc",
boxLabel : "代销机构 "
}),'-'
],
bbar : new Ext.PagingToolbar({
pageSize : 20,
store : storeCpye,
displayInfo : true,
emptyMsg : '没有记录'
})
});
function selinfo(){
var cpdm_sel = Ext.get("cpdm").getValue();
var dxjgdm_sel = Ext.get("dxjgdm").getValue();
var select_method_sel = Ext.get("cpdm_radio").getValue();
if(document.getElementById("dxjgdm_radio").checked){
select_method_sel = Ext.get("dxjgdm_radio").getValue();
colMArray[0] = {header : "代销机构代码", dataIndex : "dxjgdm", width : 100};
colMArray[1] = {header : "产品代码", dataIndex : "cpdm", width : 100};
}else{
colMArray[0] = {header : "产品代码", dataIndex : "cpdm", width : 100};
colMArray[1] = {header : "代销机构代码", dataIndex : "dxjgdm", width : 100};
}
var params = {};
params.cpdm_sel = cpdm_sel;
params.dxjgdm_sel = dxjgdm_sel;
params.select_method_sel = select_method_sel;
//params.whereStr = " and feetype in ('1','2')";
storeCpye.baseParams = params;
colQd = new Ext.grid.ColumnModel(colMArray);
//gridCpye.reconfigure(storeCpye,colQd),
storeCpye.load({
callback : function(r, options, success) {
if (success == true){
gridCpye.reconfigure(storeCpye,colQd);
}else if (success == false) {
Ext.Msg.alert("错误", storeCpye.reader.jsonData.msg);
}
}
});
}
ExtJS GridPanel的ColumnModel 动态加载的更多相关文章
- ExtJS 4.1 TabPanel动态加载页面并执行脚本【转】
ExtJS 4.1 TabPanel动态加载页面并执行脚本 按照官方示例,可以动态加载页面,可是脚本不执行,于是查SDK.google,发现scripts需要设置为true,于是设置该属性,整个代码如 ...
- ExtJs中动态加载机制研究(转)
觉得写的太好了,怕弄丢了,转一下:http://extjs.org.cn/node/659 昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果 ...
- Extjs-树 Ext.tree.TreePanel 动态加载数据
先上效果图 1.说明Ext.tree.Panel 控件是树形控件,大家知道树形结构在软件开发过程中的应用是很广泛的,树形控件的数据有本地数据.服务器端返回的数据两种.对于本地数据的加载,在extjs的 ...
- ExtJs 4.2.1 复选框数据项动态加载(更新一下)
最近在做博客项目,后台管理用的是ExtJs4.2.1版本,因为是初学所以在使用的时候也遇到不少的这样或那样的问题,也写了不少这方面的博客,今天要写的博客是关于复选框数据项动态的加载功能,以前也没用过, ...
- ExtJs 通过分析源代码解决动态加载Controller的问题
通过分析源代码解决动态加载Controller的问题 最近在研究ExtJs(4.2.0)的MVC开发模式,具体Extjs的MVC如何使用这里不解释,具体参见ExtJs的官方文档.这里要解决的问题是如何 ...
- 关于实现Extjs动态加载类的方式实现
Extjs4以前的版本没有动态加载类的方式,这样开发程序的时候加载很多的js会导致加载变慢,由于本人一直使用extjs3的版本进行开发,于是简单实现了一个动态加载类的管理器,使用方式与extjs4的方 ...
- Ext动态加载Toolbar
在使用Ext的GridPanel时候,有时候需要面板不用重新加载而去更新Store或者Toolbar,Store的方法有很多,例如官方api给我们提供的Store.load(),Store.reLoa ...
- ExtJS4 动态加载
由于有人说不要每次都调用ext-all.js,会影响性能,所以有考虑动态加载,动态加载时页面调用ext.js(4.0.7在调试时可考虑用ext-dev.js),然后在onReady之前调用 Ext.L ...
- ExtJS4.x动态加载js文件
动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...
随机推荐
- (一) solr的安装与配置
载solr文件压缩包,并解压 ,要运行solr服务之前需要先安装jdk,具体安装过程可以参看下面这篇文章: http://www.cnblogs.com/xiazh/archive/2012/05/2 ...
- TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
TreeSet要求存放的对象所属的类必须实现Comparable接口,该接口提供了比较元素的compareTo()方法,当插入元素时会回调该方法比较元素的大小.TreeMap要求存放的键值对映射的键必 ...
- sublime text配置make工具
sublime text配置make工具 Linux下许多项目是用makefile来管理的,是用gcc+make等方式来编译和运行. 在只有tty的场合或年代,使用vim或emacs是不二选择:但在L ...
- CentOS下用yum命令安装jdk
一.使用yum命令安装 1.查看是否已安装JDK,卸载 [root@192 ~]# yum list installed |grep java java-1.8.0-openjdk.x86_64 ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- Java 中的数据类型
我们学习Java就是为了编写程序完成功能,而什么是程序呢?程序 = 数据结构 + 算法. 分开看,数据结构指的是数据与数据之间的关系,那我们先来了解一下Java中的数据都是怎么表示的呢 ?也就是说数据 ...
- android manifest.xml 文件
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 清单文件 包括 包名 应用 各个组件 四大组件 使用到的权限 应用程序所需要的最低安卓 ...
- BZOJ 2333: [SCOI2011]棘手的操作 可并堆 左偏树 set
https://www.lydsy.com/JudgeOnline/problem.php?id=2333 需要两个结构分别维护每个连通块的最大值和所有连通块最大值中的最大值,可以用两个可并堆实现,也 ...
- 【拉格朗日插值法】【找规律】【高精度】Gym - 101156G - Non-Attacking Queens
题意:问你n*n的国际象棋棋盘上放3个互不攻击皇后的方案数. oeis……公式见代码内 //a(n) = 5a(n - 1) - 8a(n - 2) + 14a(n - 4) - 14a(n - 5) ...
- java的反射机制(第二篇)
本文转载自:http://c.biancheng.net/cpp/html/1781.html 要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class ...