var GenerGrid = {
data: null,
url_data: null,//Grid数据源
url_column: null,//列数据源
_width: null,//宽度
_height: null,//高度
_pagesize: null,//每页显示数据数
romanceContainer: null,//渲染Grid的容器
//hiddenColumnCount: null, //隐藏的列数,默认无隐藏列
enableChecked: false,//是否有CheckBox,默认为无。
grid: null,
ToHrefField: null,//链接列
ToHrefUrl: null,//链接地址
ToHref: function(value) {
return '<a href=" + GenerGrid.ToHrefUrl + " mce_href=" + GenerGrid.ToHrefUrl + ">' + value + '</a>';
},
GenerData: function() {
//动态添加列,这是关键代码
var addColumn = function() {
this.fields = '';
this.columns = '';
this.addColumns = function(name, caption) {
if (this.fields.length > 0) {
this.fields += ',';
}
if (this.columns.length > 0) {
this.columns += ',';
}
this.fields += '{name:"' + name + '"}';
this.columns += '{header:"' + caption + '",dataIndex:"' + name + '",width:100,sortable:true}';
};
};
//从服务器端获取列,然后动态添加到ColumnModel中
Ext.Ajax.request({
url: GenerGrid.url_column,
success: function(response, option) {
if (response.responseText == "") {
return;
}
GenerGrid.data = new addColumn();
var res = Ext.util.JSON.decode(response.responseText);
for (var i = 0; i < res.length; i++) {
for (var p in res[i]) {
GenerGrid.data.addColumns(p, p);
}
}
//动态生成GridPanel
makeGrid();
},
failure: function() {
Ext.Msg.alert("消息", "查询出错请查看语句是否配置正确");
}
});
//动态生成GridPanel
var makeGrid = function() {
var cm = new Ext.grid.ColumnModel(eval('([' + GenerGrid.data.columns + '])'));
cm.defaultSortable = false;
var fields = eval('([' + GenerGrid.data.fields + '])');
var newStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: GenerGrid.url_data
}),
reader: new Ext.data.JsonReader({
totalProperty: "totalPorperty",
root: "result",
fields: fields
})
});
newStore.load({
params: {
start: 1,
limit: 16
}
});
var pagingBar = new Ext.PagingToolbar({
displayInfo: true,
emptyMsg: "没有数据显示",
displayMsg: "显示从{0}条数据到{1}条数据,共{2}条数据",
store: newStore,
pageSize: GenerGrid._pagesize,
items: ['-', {
pressed: true,
enableToggle: true,
text: '导出Excel',
cls: 'x-btn-text-icon details',
icon: "../images/plugin.gif",
toggleHandler: function(btn, pressed) {
var title = "数据下载";
//如果是作为uri后面的参数传值,那就需要对字符进行编码
//如果是通过post的方式传数据,就不要做任何的编码
var cols = eval(cm);
var header = "";
var dataIndex = "";
for (var i = 0; i < cols.config.length; i++) {
header += cols.config[i].header + ",";
dataIndex += cols.config[i].dataIndex + ",";
}
var uri = "DataStore.aspx?param=ExpExcel" + "&filename=" + escape(title) + "&header=" + header + "&dataIndex=" + dataIndex;
window.location.href = uri;
}
},
'-']
});
var gridPanel = new Ext.grid.GridPanel({
cm: cm,
id: "grid_panel",
loadMask: {
msg: '正在加载数据,请稍侯. . . . . .'
},
renderTo: GenerGrid.romanceContainer,
store: newStore,
frame: true,
border: true,
layout: "fit",
pageSize: GenerGrid._pagesize,
//width:GenerGrid._width,
height: GenerGrid._height,
viewConfig: {
forceFit: true
},
columnLines: false,
bbar: pagingBar
});
GenerGrid.grid = gridPanel;
};
}
}
页面调用:
var gdate=function init(Container_id,sqlid) {
Ext.Msg.alert("提示消息",sqlid);//测试用的
GenerGrid.url_data = "DataStore.aspx?sqlid="+sqlid+"¶m=griddata"; //Grid数据源
GenerGrid.url_column = "DataStore.aspx?sqlid="+sqlid+"¶m=gridcolumn"; //列数据源
//GenerGrid._width =Ext.get(Container_id).getComputedWidth(); //宽度
GenerGrid._height = 360; //高度
GenerGrid.romanceContainer = Container_id; //渲染Grid的容器
GenerGrid._pagesize = 20; //每页显示数据数
GenerGrid.enableChecked = false; //是否有CheckBox,默认为无。
GenerGrid.ToHrefField = "TypeCName";
GenerGrid.ToHrefUrl = "about:blank";
GenerGrid.GenerData();
}
........
......gdate(dtime,_TypeID);
分享到:
相关推荐
Ext grid 动态添加字段、列扩展, 如何动态添加或者删除一个grid的列
这两天项目需要,临时做了一个,没有封装,该grid可以实现列和行的自定义添加和删除,包括修改标题,以及列的右击添加事件。...双击列名可以对列名进行修改,右键列名可以选择左侧和右侧添加列以及对该列的删除。
此Demo不包含jar包,请自行添加 博文链接:https://yourgame.iteye.com/blog/228826
Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作
Ext3.4 将BufferView添加到LockingGridView中, 修改GroupHeaderPlugin使其可用于LockingGridView 内有使用示例
代码如下:grid . addListener ( ‘rowcontextmenu’ , rightClickFn ); // 右键菜单代码关键部分 //Menu 建立 var rightClick = new Ext . menu . Menu ({ id : ‘rightClickCont’ , // 在 HTML 文件中必须有个 ...
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变...
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变...
2.4.2. 让grid支持按列排序 2.4.3. 中文排序是个大问题 2.5. 让单元格里显示红色的字,图片,按钮,你还能想到什么? 2.6. 更进一步,自动行号和多选checkbox 2.6.1. 自动行号 2.6.2. 全选checkbox的时间了,请允许...
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽...
8.5.4. Ext对json的支持力度 8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制...
10.1.7 锁定列的运行流程:ext.grid.lockable与ext.grid.lockingview / 516 10.2 使用grid / 520 10.2.1 最简单的grid / 520 10.2.2 列的配置项 / 521 10.2.3 自定义单元格的显示格式 / 523 10.2.4 通过列对象...
14.5 系统主页面与动态菜单 421 14.6 用户管理模块 427 14.7 角色管理模块 439 14.8 产品管理模块 447 14.9 进仓管理模块 450 14.10 出仓管理模块 460 14.11 库存统计模块 474 14.12 用户修改密码窗口 479 14.13 ...
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽...
动态添加菜单按钮到Toolbar 61 更方便的是 61 下一步是 62 模板(Templates)起步 62 第一步 您的HTML模板 62 第二步,将数据加入到模板中 62 下一步 63 学习利用模板(Templates)的格式化功能 63 正式开始 63 下...
8.5.4. Ext对json的支持力度 8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小...
NULL 博文链接:https://tonylian.iteye.com/blog/1735525
定义数据(Data Definition) 51 步骤二 列模型(Column Model) 52 Grid组件的简易分页 53 Grid数据 53 怎么做一个分页的Grid 54 分页栏Toolbar 55 EXT Menu组件 55 创建简易菜单 56 各种...
动态添加菜单按钮到Toolbar 61 更方便的是 61 下一步是 62 模板(Templates)起步 62 第一步 您的HTML模板 62 第二步,将数据加入到模板中 62 下一步 63 学习利用模板(Templates)的格式化功能 63 正式开始 63 下...
自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变...