Ext.Grid的强大功能想必用过Ext的都体会到,可以隐藏列,可以拖放,可以排序等等,但是如果用户隐藏了某一些列后,下次登录时还是要看到上次隐藏后的列该怎么办呢?这就涉及到一个用户使用习惯的问题。想到记录用户习惯,当然首选使用Cookie。但是问题来了,在什么时候记录Cookie?什么事件触发后我们去写Cookie?其实最完美的当然就是在隐藏列这一事件(暂且叫它事件吧,具体的我也不太清楚Ext隐藏列的原理)触发时把剩下的列写入Cookie,但是小生才疏学浅,没有找到这个“隐藏列”事件,没法重写,只好另辟蹊径。反反复复试了Grid自带的方法比如:Close,BeforeClose,打算在用户关闭Grid的时候记录,但是没有效果,最后才找到beforedestroy这一事件,匪夷所思,关闭grid的时候不是触发beforeclose或者close,偏偏来个beforedestroy(英文就是摧毁,销毁),难道是Ext的人的命名习惯?不解。说到这里思路就清楚了,实现原理及步骤如下:
1、在用户关闭Grid时,触发BeforeDestroy事件,判断那些列是隐藏的,写入Cookie:
- grid.on("beforedestroy", CloseWriteCookie, grid);
- // 按用户习惯,隐藏某列
- if (boolHasClosedGrid == false)// 首次浏览
- {
- HiddenMyColumn(grid, varHiddenColumn);
- // alert(varHiddenColumn);
- }
- // 关闭grid但未关闭浏览器
- else {
- HiddenMyColumn(grid, varHiddenColumnColseGrid);
- }
grid.on("beforedestroy", CloseWriteCookie, grid);
// 按用户习惯,隐藏某列
if (boolHasClosedGrid == false)// 首次浏览
{
HiddenMyColumn(grid, varHiddenColumn);
// alert(varHiddenColumn);
}
// 关闭grid但未关闭浏览器
else {
HiddenMyColumn(grid, varHiddenColumnColseGrid);
}
- 1//写入CooKie事件
- 2
- 3function CloseWriteCookie(obj) {
- 4 var cms = obj.getColumnModel(); // 获得网格的列模型
- 5 var strHiddenColoumnIndex = "";// 存储当前网格已经显示的列名(列名之间用 "," 分隔)
- 6 // alert(cms.getColumnCount());
- 7 for (var i = 0; i < cms.getColumnCount(); i++) {// 处理当前显示的列
- 8
- 9 if (cms.isHidden(i) && cms.getDataIndex(i) != "") {// 判断是否是隐藏列
- 10 strHiddenColoumnIndex += Ext.util.Format.trim(i) + ",";// 获得列序号数字从0开始
- 11 }
- 12 }
- 13 // 把隐藏列存到Cookie中的同时返回隐藏列的值。
- 14 Ext.Ajax.request({
- 15 timeout : 3000000,
- 16 url : '/ajax/SetUserColumnCookie.aspx',
- 17 params : "ParaCkUserColumn=Write&UserHiddenColumn="
- 18 + strHiddenColoumnIndex,
- 19 success : function(response, options) {
- 20 Ext.MessageBox.hide();
- 21 varHiddenColumnColseGrid = response.responseText// 把最新的隐藏列赋值给全局变量varHiddenColumnColseGrid
- 22 // alert(varHiddenColumnColseGrid);
- 23 boolHasClosedGrid = true;// 设置关闭grid但未关闭浏览器为真
- 24 },
- 25 failure : function(response, options) {
- 26 Ext.Msg.alert('错误', Ext.util.JSON
- 27 .decode(response.responseText).data.msg);
- 28
- 29 }
- 30 }
- 31
- 32 )
- 33}
- 34
- 35
1//写入CooKie事件
2
3function CloseWriteCookie(obj) {
4 var cms = obj.getColumnModel(); // 获得网格的列模型
5 var strHiddenColoumnIndex = "";// 存储当前网格已经显示的列名(列名之间用 "," 分隔)
6 // alert(cms.getColumnCount());
7 for (var i = 0; i < cms.getColumnCount(); i++) {// 处理当前显示的列
8
9 if (cms.isHidden(i) && cms.getDataIndex(i) != "") {// 判断是否是隐藏列
10 strHiddenColoumnIndex += Ext.util.Format.trim(i) + ",";// 获得列序号数字从0开始
11 }
12 }
13 // 把隐藏列存到Cookie中的同时返回隐藏列的值。
14 Ext.Ajax.request({
15 timeout : 3000000,
16 url : '/ajax/SetUserColumnCookie.aspx',
17 params : "ParaCkUserColumn=Write&UserHiddenColumn="
18 + strHiddenColoumnIndex,
19 success : function(response, options) {
20 Ext.MessageBox.hide();
21 varHiddenColumnColseGrid = response.responseText// 把最新的隐藏列赋值给全局变量varHiddenColumnColseGrid
22 // alert(varHiddenColumnColseGrid);
23 boolHasClosedGrid = true;// 设置关闭grid但未关闭浏览器为真
24 },
25 failure : function(response, options) {
26 Ext.Msg.alert('错误', Ext.util.JSON
27 .decode(response.responseText).data.msg);
28
29 }
30 }
31
32 )
33}
34
35
2、用户再次打开这个页面时先用Ajax读Cookie中的隐藏列,然后调用HiddenColumn函数,执行隐藏列。
- Ext.Ajax.request({
- timeout : 3000000,
- url : '/ajax/SetUserColumnCookie.aspx',
- params : "ParaCkUserColumn=Read",
- success : function(response, options) {
- Ext.MessageBox.hide();
- varHiddenColumn = response.responseText
- // alert(varHiddenColumn);
- },
- failure : function(response, options) {
- Ext.Msg.alert('错误',
- Ext.util.JSON.decode(response.responseText).data.msg);
- }
- })
- 1 // 隐藏列函数
- 2 function HiddenMyColumn(vargrid, varColumnIndex) {
- 3
- 4 if (varColumnIndex != "") {
- 5 var cms = vargrid.getColumnModel(); // 获得网格的列模型
- 6 var strarrayUserColumn = new Array();
- 7 strarrayUserColumn = varColumnIndex.split(",");
- 8 for (var i = 0; i < strarrayUserColumn.length; i++) {
- 9 cms.setHidden(strarrayUserColumn[i], true);// 隐藏列模型
- 10 }
- 11 }
- 12 }
Ext.Ajax.request({
timeout : 3000000,
url : '/ajax/SetUserColumnCookie.aspx',
params : "ParaCkUserColumn=Read",
success : function(response, options) {
Ext.MessageBox.hide();
varHiddenColumn = response.responseText
// alert(varHiddenColumn);
},
failure : function(response, options) {
Ext.Msg.alert('错误',
Ext.util.JSON.decode(response.responseText).data.msg);
}
})
1 // 隐藏列函数
2 function HiddenMyColumn(vargrid, varColumnIndex) {
3
4 if (varColumnIndex != "") {
5 var cms = vargrid.getColumnModel(); // 获得网格的列模型
6 var strarrayUserColumn = new Array();
7 strarrayUserColumn = varColumnIndex.split(",");
8 for (var i = 0; i < strarrayUserColumn.length; i++) {
9 cms.setHidden(strarrayUserColumn[i], true);// 隐藏列模型
10 }
11 }
12 }
欢迎各位批评指正。如果有更好的实现方法,请您不吝赐教。
附上完整的JS文件吧,后台aspx,cs文件就不贴了,有需要联系我
TotalJS.js
- var ds;
- var varHiddenColumn = "";
- var boolHasClosedGrid = false;
- Ext.Ajax.request({
- timeout : 3000000,
- url : '/ajax/SetUserColumnCookie.aspx',
- params : "ParaCkUserColumn=Read",
- success : function(response, options) {
- Ext.MessageBox.hide();
- varHiddenColumn = response.responseText
- // alert(varHiddenColumn);
- },
- failure : function(response, options) {
- Ext.Msg.alert('错误',
- Ext.util.JSON.decode(response.responseText).data.msg);
- }
- })
- function QueryWebTraceByAll() {
- var varDefaultState = "";
- Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';
- Ext.QuickTips.init();
- // var fm = Ext.form;
- var sm = new Ext.grid.CheckboxSelectionModel();
- var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {
- header : '编号',
- width : 40,
- dataIndex : 'Id',
- sortable : true
- }, {
- header : '域名',
- width : 100,
- dataIndex : 'HostName',
- renderer : change,
- sortable : true
- }, {
- header : '流量',
- width : 50,
- dataIndex : 'PageView',
- sortable : true
- }, {
- header : '测试域名',
- width : 100,
- dataIndex : 'TestHostName',
- renderer : change,
- sortable : true
- }, {
- header : '服务器IP',
- width : 140,
- dataIndex : 'WebSpace',
- sortable : true
- }, {
- header : '空间用户名',
- width : 100,
- dataIndex : 'WebSpaceUserName',
- sortable : true
- }, {
- header : '空间名',
- width : 100,
- dataIndex : 'WebSpaceNumber',
- sortable : true
- }, {
- header : "Ftp密码",
- width : 100,
- dataIndex : 'FtpPwd',
- sortable : true
- },
- {
- header : '备案号',
- width : 140,
- dataIndex : 'BeiAn',
- sortable : true
- },// renderer:renderFoo,
- {
- header : '域名服务商',
- width : 140,
- dataIndex : 'HostNameSP',
- sortable : true
- },// renderer:renderFoo,
- {
- header : '域名注册时间',
- width : 140,
- dataIndex : 'HostNameRegDate',
- sortable : true
- },// renderer:renderFoo,
- {
- header : '域名到期时间',
- width : 140,
- dataIndex : 'HostNameExpireDate',
- sortable : true
- },// renderer:renderFoo,
- {
- header : '类型',
- width : 50,
- dataIndex : 'WebType',
- sortable : true
- }, {
- header : '主关键字',
- width : 100,
- dataIndex : 'KeyWords',
- sortable : true
- }, {
- header : '副关键词',
- width : 100,
- dataIndex : 'SubKeyWords',
- sortable : true
- }, {
- header : '状态',
- width : 100,
- dataIndex : 'State',
- sortable : true
- }, {
- header : '分配人',
- width : 100,
- dataIndex : 'Assumer',
- sortable : true
- }, {
- header : '制作人',
- width : 40,
- dataIndex : 'Producer',
- sortable : true
- }, {
- header : '模板',
- width : 56,
- dataIndex : 'Template',
- sortable : true
- }, {
- header : '负责人',
- width : 40,
- dataIndex : 'Maintainer',
- sortable : true
- }, {
- header : '组长',
- width : 40,
- dataIndex : 'TeamLeader',
- sortable : true
- }, {
- header : '维护人51la',
- width : 65,
- dataIndex : 'MaintainerStatisId',
- sortable : true
- }, {
- header : '网站51la',
- width : 51,
- dataIndex : 'StatisId',
- sortable : true
- }, {
- header : '密码',
- width : 45,
- dataIndex : 'MaintainerFivelaPwd',
- sortable : true
- }, {
- header : '收录',
- width : 30,
- dataIndex : 'Baidu',
- sortable : true
- }, {
- header : '分配时间',
- width : 100,
- dataIndex : 'ToTeamLeaderDate',
- sortable : true
- }, {
- header : '制作时间',
- width : 100,
- dataIndex : 'StartDoDate',
- sortable : true
- }, {
- header : '完成时间',
- width : 100,
- dataIndex : 'EndDoDate',
- sortable : true
- }, {
- header : '审核时间',
- width : 100,
- dataIndex : 'CheckDate',
- sortable : true
- }, {
- header : '组员评分',
- width : 100,
- dataIndex : 'Score',
- sortable : true
- }, {
- header : '分配人评分',
- width : 100,
- dataIndex : 'AssumerScore',
- sortable : true
- }, {
- header : '综合评分',
- width : 100,
- dataIndex : 'TotalScore',
- sortable : true
- }]);
- // proxy直接去读取josn数据【
- ds = new Ext.data.Store({
- proxy : new Ext.data.HttpProxy({
- url : 'WebTask/WebsiteGeneral/ShowWebSiteAsZWToLeader.aspx'
- }),
- reader : new Ext.data.JsonReader({
- totalProperty : 'totalProperty',
- root : 'Head',
- successProperty : 'success'
- }, [{
- name : 'Id',
- mapping : 'Id',
- type : 'int'
- }, {
- name : 'HostName',
- mapping : 'HostName',
- type : 'string'
- }, {
- name : 'TestHostName',
- mapping : 'TestHostName',
- type : 'string'
- }, {
- name : "FtpPwd",
- mapping : "FtpPwd",
- type : "string"
- }, {
- name : 'WebSpaceNumber',
- mapping : 'WebSpaceNumber',
- type : 'string'
- }, {
- name : 'WebSpaceUserName',
- mapping : 'WebSpaceUserName',
- type : 'string'
- }, {
- name : 'BeiAn',
- mapping : 'BeiAn',
- type : 'string'
- }, {
- name : 'State',
- mapping : 'State',
- type : 'string'
- }, {
- name : 'WebSpace',
- mapping : 'WebSpace',
- type : 'string'
- }, {
- name : 'Assumer',
- mapping : 'Assumer',
- type : 'string'
- }, {
- name : 'HostNameSP',
- mapping : 'HostNameSP',
- type : 'string'
- }, {
- name : 'HostNameRegDate',
- mapping : 'HostNameRegDate',
- type : 'string'
- }, {
- name : 'HostNameExpireDate',
- mapping : 'HostNameExpireDate',
- type : 'string'
- }, {
- name : 'MaintainerStatisId',
- mapping : 'MaintainerStatisId',
- type : 'string'
- }, {
- name : 'StatisId',
- mapping : 'StatisId',
- type : 'string'
- }, {
- name : 'MaintainerFivelaPwd',
- mapping : 'MaintainerFivelaPwd',
- type : 'string'
- }, {
- name : 'Baidu',
- mapping : 'Baidu',
- type : 'string'
- }, {
- name : 'PageView',
- mapping : 'PageView',
- type : 'string'
- }, {
- name : 'WebType',
- mapping : 'WebType',
- type : 'string'
- }, {
- name : 'KeyWords',
- mapping : 'KeyWords',
- type : 'string'
- }, {
- name : 'SubKeyWords',
- mapping : 'SubKeyWords',
- type : 'string'
- }, {
- name : 'StartTaskDate',
- mapping : 'StartTaskDate',
- type : 'string'
- }, {
- name : 'CheckDate',
- mapping : 'CheckDate',
- type : 'string'
- }, {
- name : 'StartDoDate',
- mapping : 'StartDoDate',
- type : 'string'
- }, {
- name : 'EndDoDate',
- mapping : 'EndDoDate',
- type : 'string'
- }, {
- name : 'TeamLeader',
- mapping : 'TeamLeader',
- type : 'string'
- }, {
- name : 'Maintainer',
- mapping : 'Maintainer',
- type : 'string'
- }, {
- name : 'Producer',
- mapping : 'Producer',
- type : 'string'
- }, {
- name : 'Template',
- mapping : 'Template',
- type : 'string'
- }, {
- name : 'ToTeamLeaderDate',
- mapping : 'ToTeamLeaderDate',
- type : 'string'
- }, {
- name : 'ToTeamDate',
- mapping : 'ToTeamDate',
- type : 'string'
- }, {
- name : 'Score',
- mapping : 'Score',
- type : 'string'
- }, {
- name : 'AssumerScore',
- mapping : 'AssumerScore',
- type : 'string'
- }, {
- name : 'TotalScore',
- mapping : 'TotalScore',
- type : 'string'
- }]),
- remoteSort : true
- });
- var store = new Ext.data.Store({
- proxy : new Ext.data.HttpProxy({
- url : "WebTask/WebsiteGeneral/GetEmployeeAsGroup.aspx?type=z"
- }), // 数据源
- reader : new Ext.data.JsonReader({
- totalProperty : "totalPorperty",
- root : "Head",
- successProperty : 'success',
- fields : [{
- name : 'id',
- mapping : 'id',
- type : 'string'
- }, {
- name : 'username',
- mapping : 'username',
- type : 'string'
- }]
- })
- // 如何解析
- });
- store.load();
- var storeddl = new Ext.data.Store({
- proxy : new Ext.data.HttpProxy({
- url : "WebTask/WebsiteGeneral/GetParaList.aspx?MenuId=0010"
- }), // 下拉框数据源
- reader : new Ext.data.JsonReader({
- totalProperty : "totalPorperty",
- root : "Head",
- successProperty : 'success',
- fields : [{
- name : 'ParaName',
- mapping : 'ParaName',
- type : 'string'
- }, {
- name : 'ParaValue',
- mapping : 'ParaValue',
- type : 'string'
- }]
- })
- // 如何解析
- });
- // 状态数据集,非数据库
- var DdlState = new Ext.data.SimpleStore({
- fields : ['ParaName', 'ParaValue'],
- data : [['所有', ''], ['准备制作', '准备制作'], ['正在制作中', '正在制作中'],
- ['已制作完成', '已制作完成'], ['已审核', '已审核'],
- ['已分配给组长', '已分配给组长'], ['已分配给组员', '已分配给组员']]
- });
- storeddl.load();
- // 网站制作状态静态数据
- var liebie = new Ext.form.ComboBox({
- id : 'dropdownliststate',
- emptyText : '请选择网站制作状态',
- mode : 'local', // 数据模式,local为本地模式
- readOnly : true,
- hidden : true,
- displayField : 'ParaName',
- valueField : 'ParaValue',
- triggerAction : 'all',
- name : 'identity', // 作为form提交时传送的参数
- store : DdlState,
- listeners : {
- select : {
- fn : function(combo, record, index) {
- // 先清理数据
- ds.removeAll();
- ds.baseParams = {
- paraname : grid.topToolbar.items.items[0].value,
- paravalue : record.get('ParaValue')
- };
- ds.load({
- callback : function(r, options, success) {
- if (success == false) {
- // 如果没有数据就清空
- ds.removeAll();
- Ext.MessageBox.alert('提示',
- 'Sorry,没有符合条件的数据');
- }
- }
- });
- ds.reload({
- params : {
- start : 0,
- limit : 20
- }
- });
- }
- }
- }
- });
- var grid = new Ext.grid.EditorGridPanel({
- renderTo : 'grid3',
- ds : ds,
- sm : sm,
- stripeRows : true,
- cm : cm,
- width : 700,
- height : 280,
- loadMask : true,
- tbar : new Ext.Toolbar({
- items : [new Ext.form.ComboBox({
- id : 'ComSearch',
- emptyText : '请选择搜索项目',
- mode : 'remote', // 数据模式,local为本地模式
- readOnly : true,
- displayField : 'ParaName',
- valueField : 'ParaValue',
- triggerAction : 'all',
- name : 'identity', // 作为form提交时传送的参数
- store : storeddl,
- listeners : {
- select : {
- fn : function(combo, record, index) {
- if (record.get('ParaValue') == 'State') {
- liebie.show();
- Ext.get('txtsearchword')
- .setDisplayed('none');
- Ext.get('btnSearch')
- .setDisplayed('none');
- } else {
- liebie.hide();
- Ext.get('txtsearchword')
- .setDisplayed('block');
- Ext.get('btnSearch')
- .setDisplayed('block');
- }
- }
- }
- }
- }),
- // 网站状态静态数据
- liebie, new Ext.form.TextField({
- id : 'txtsearchword',
- fieldLabel : '搜索文字',
- width : 150,
- name : 'SearchWord',
- allowBlank : false,
- blankText : '请输入搜索文字',
- listeners : {
- specialKey : function(field, e) {
- if (e.getKey() == Ext.EventObject.ENTER) {
- ds.removeAll();
- ds.baseParams = {
- paraname : grid.topToolbar.items.items[0].value,
- paravalue : Ext.get('txtsearchword').dom.value
- };
- ds.load({
- callback : function(r, options, success) {
- if (success == false) {
- Ext.MessageBox.alert('提示',
- 'Sorry,没有符合条件的数据');
- }
- }
- });
- ds.reload({
- params : {
- start : 0,
- limit : 20
- }
- });
- }
- }
- }
- }),
- {
- id : 'btnSearch',
- text : '搜索',
- iconCls : 'search',
- handler : function() {
- ds.removeAll();
- ds.baseParams = {
- paraname : grid.topToolbar.items.items[0].value,
- paravalue : Ext.get('txtsearchword').dom.value
- };
- ds.load({
- callback : function(r, options, success) {
- if (success == false) {
- // 如果为空就清空原来数据
- Ext.MessageBox.alert('提示',
- 'Sorry,没有符合条件的数据');
- }
- }
- });
- ds.reload({
- params : {
- start : 0,
- limit : 20
- }
- });
- }
- }]
- }),
- bbar : new Ext.PagingToolbar({
- pageSize : 20,
- store : ds,
- displayInfo : true,
- displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
- emptyMsg : "没有记录",
- items : [{
- text : '导出Excel',
- iconCls : 'add',
- tooltip : "点击导出Excel文件",
- handler : function() {
- // 导出Excel文件
- var cms = grid.getColumnModel(); // 获得网格的列模型
- var strColoumnNames = "";// 存储当前网格已经显示的列名(列名之间用 "," 分隔)
- var strColoumnNamesHeader = "";
- var strAllSql = "";
- for (var i = 0; i < cms.getColumnCount(); i++) {// 处理当前显示的列
- if (!cms.isHidden(i) && cms.getDataIndex(i) != "") {// 判断是否是隐藏列及是否列名为空(因为如果有选择框和默认序号,则为空)
- strColoumnNames = Ext.util.Format.trim(cms
- .getDataIndex(i));// 获得列名
- // 判断是否是综合评分这列,如果是要把列名换成原始的
- strColoumnNamesHeader = escape(Ext.util.Format
- .trim(cms.getColumnHeader(i)));// 获得列标题
- strAllSql += strColoumnNames + " as "
- + strColoumnNamesHeader + ",";// 拼接Sql查询语句,格式
- // 字段 as
- // 中文标题
- }
- }
- // self表示在本窗口打开
- var varparaname = grid.topToolbar.items.items[0].value;
- var varparavalue = Ext.util.Format.trim(Ext
- .get('txtsearchword').dom.value);
- var varparanametext = Ext.get('ComSearch').dom.value
- var gridtoexcelwindow;
- if (typeof(varparaname) == "undefined") {
- varparaname = "State";
- varparavalue = varDefaultState;
- varparanametext = "默认首要业务数据";
- }
- gridtoexcelwindow = window
- .open( "Ajax/GridToExcel.aspx?sql=" + strAllSql
- + "&FromTable=WebTrace&ParaName="
- + escape(varparaname)
- + "&ParaNameText="
- + escape(varparanametext)
- + "&ParaValue="
- + escape(varparavalue), "_self",
- "menubar=0,scrollbar=0,resizable=0,channelmode=0,location=0,status=0");
- gridtoexcelwindow.focus();
- }
- }]
- })
- });
- // el:指定html元素用于显示grid
- grid.render();// 渲染表格
- //
- ds.baseParams = {
- paraname : 'State',
- paravalue : varDefaultState
- };
- ds.load({
- callback : function(r, options, success) {
- if (success == false) {
- ds.removeAll();
- Ext.MessageBox.alert('提示', 'Sorry,没有符合条件的数据');
- }
- }
- });
- ds.reload({
- params : {
- start : 0,
- limit : 20
- }
- });
- var win = new Ext.Window({
- layout : 'fit',
- maximizable : true,
- collapsible : true,
- width : 1000,
- height : 600,
- modal : true,
- title : "公共查询界面:在这里您可以查询您需要的网站并可以导出所需数据<br/><font color='#FF0000'><b>小提示:<br/>1、您可以点击任一列名右侧出现的箭头,在出现的下拉框中,隐藏某些您不需要的列。您再次进入此页面时将保持您上次保留的列。<br/>2、搜索支持回车键。<br/>3、在窗体底部有'导出Excel'按钮,你可以导出您需要的数据</b></font>",
- items : grid
- });
- win.show();
- grid.on("afteredit", afterEdit1, grid);
- grid.on("beforedestroy", CloseWriteCookie, grid);
- // 按用户习惯,隐藏某列
- if (boolHasClosedGrid == false)// 首次浏览
- {
- HiddenMyColumn(grid, varHiddenColumn);
- // alert(varHiddenColumn);
- }
- // 关闭grid但未关闭浏览器
- else {
- HiddenMyColumn(grid, varHiddenColumnColseGrid);
- }
- }
- // 隐藏列函数
- function HiddenMyColumn(vargrid, varColumnIndex) {
- if (varColumnIndex != "") {
- var cms = vargrid.getColumnModel(); // 获得网格的列模型
- var strarrayUserColumn = new Array();
- strarrayUserColumn = varColumnIndex.split(",");
- for (var i = 0; i < strarrayUserColumn.length; i++) {
- cms.setHidden(strarrayUserColumn[i], true);// 隐藏列模型
- }
- }
- }
- // 关闭时写cookie
- function CloseWriteCookie(obj) {
- var cms = obj.getColumnModel(); // 获得网格的列模型
- var strHiddenColoumnIndex = "";// 存储当前网格已经显示的列名(列名之间用 "," 分隔)
- // alert(cms.getColumnCount());
- for (var i = 0; i < cms.getColumnCount(); i++) {// 处理当前显示的列
- if (cms.isHidden(i) && cms.getDataIndex(i) != "") {// 判断是否是隐藏列
- strHiddenColoumnIndex += Ext.util.Format.trim(i) + ",";// 获得列序号数字从0开始
- }
- }
- // 把隐藏列存到Cookie中的同时返回隐藏列的值。
- Ext.Ajax.request({
- timeout : 3000000,
- url : '/ajax/SetUserColumnCookie.aspx',
- params : "ParaCkUserColumn=Write&UserHiddenColumn="
- + strHiddenColoumnIndex,
- success : function(response, options) {
- Ext.MessageBox.hide();
- varHiddenColumnColseGrid = response.responseText// 把最新的隐藏列赋值给全局变量varHiddenColumnColseGrid
- // alert(varHiddenColumnColseGrid);
- boolHasClosedGrid = true;// 设置关闭grid但未关闭浏览器为真
- },
- failure : function(response, options) {
- Ext.Msg.alert('错误', Ext.util.JSON
- .decode(response.responseText).data.msg);
- }
- }
- )
- }
- // 编辑时的检验是否合法,不合法不更新
- function afterEdit1(obj) {
- var r = obj.record;// 获取被修改的行
- var l = obj.field;// 获取被修改的列
- var o = obj.originalValue;
- var id = r.get("Id");
- var lie = r.get(l);
- Ext.Ajax.request({
- url : '/Ajax/WebsiteOper.aspx?type=3',
- params : "id=" + id + "&name=" + l + '&value=' + lie
- });
- var cursor = this.getBottomToolbar().cursor;
- ds.load({
- params : {
- start : cursor,
- limit : this.getBottomToolbar().pageSize
- }
- });
- }
- function DEL(Obj) {
- var cursor = Obj.getBottomToolbar().cursor;
- ds.load({
- params : {
- start : cursor,
- limit : Obj.getBottomToolbar().pageSize
- }
- });
- }