FineUI Grid 缓存列显示隐藏状态
当列表字段过多时,需要隐藏掉一些,但是再次打开页面又显示出来了,FineUI没有提供缓存功能,那么自己动手,打开【ext-part2.js】找到
“if (Ext.grid.column.RowNumberer)”这里添加一个if代码如下
if(Ext.grid.header.Container){
Ext.override(Ext.grid.header.Container,{
onColumnCheckChange:function(checkItem, checked){
var header =Ext.getCmp(checkItem.headerId);
header[checked ?'show':'hide']();
F.customEvent("HeaderSelectedEven:id="+checkItem.headerId+";state="+checked+";grid="+this.grid.id);
}
});
}
效果是这样的

然后在页面的load事件里写

下面我们看WebBase里面的代码
/// <summary>
/// 功能描述:保存dgv隐藏表头id
/// 作 者:huangzh
/// 创建日期:2015-11-20 14:16:06
/// 任务编号:
/// </summary>
/// <param name="strPageName">strPageName</param>
/// <param name="strDgvName">strDgvName</param>
/// <param name="strValues">strValues</param>
public static void SaveDGVHideComs(string strPageName, string strDgvName, string strValues)
{
HttpCookie cookie = new HttpCookie(strPageName + "_" + strDgvName);
cookie.Expires = DateTime.Now.AddMonths();
cookie.Value = strValues;
HttpContext.Current.Response.Cookies.Add(cookie);
} /// <summary>
/// 功能描述:获取DGV隐藏表头id
/// 作 者:huangzh
/// 创建日期:2015-11-20 14:15:55
/// 任务编号:
/// </summary>
/// <param name="strPageName">strPageName</param>
/// <param name="strDgvName">strDgvName</param>
/// <returns>返回值</returns>
public static string GetDGVHideComs(string strPageName, string strDgvName)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strPageName + "_" + strDgvName];
if (cookie != null)
{
return cookie.Value;
}
else
{
return "";
}
} /// <summary>
/// 功能描述:检查DGV隐藏表头
/// 作 者:huangzh
/// 创建日期:2015-11-20 14:15:34
/// 任务编号:
/// </summary>
/// <param name="strPageName">strPageName</param>
/// <param name="strDgvName">strDgvName</param>
/// <param name="streventArgument">streventArgument</param>
public static void CheckDGVHideComs(string strPageName, string strDgvName, string streventArgument)
{
if (streventArgument.StartsWith("HeaderSelectedEven:"))
{
string strValues = streventArgument.Substring("HeaderSelectedEven:".Length);
string[] values = strValues.Split(';');
string strid = values[].Split('=')[];
string strstate = values[].Split('=')[];
string strDgvIds = values[].Split('=')[];
string[] names = strDgvIds.Split('_');
if (strDgvName == names[names.Length - ])
{
string strValue = GetDGVHideComs(strPageName, strDgvName);
List<string> lstValues = strValue.Split(',').ToList();
if (strstate.ToLower() == "true")
{
if (lstValues.Contains(strid))
{
lstValues.Remove(strid);
}
}
else
{
if (!lstValues.Contains(strid))
{
lstValues.Add(strid);
}
} strValue = string.Join(",", lstValues);
SaveDGVHideComs(strPageName, strDgvName, strValue);
}
}
} /// <summary>
/// 功能描述:设置dgv隐藏表头
/// 作 者:huangzh
/// 创建日期:2015-11-20 14:20:11
/// 任务编号:
/// </summary>
/// <param name="dgv">dgv</param>
/// <param name="strPageName">strPageName</param>
public static void SetDGVHideCom(FineUI.Grid dgv, string strPageName)
{
string strValue = GetDGVHideComs(strPageName, dgv.ID);
if (!string.IsNullOrEmpty(strValue))
{
dgv.HiddenColumns = strValue.Split(',');
}
}
代码就这么多,我们看下效果吧

FineUI Grid 缓存列显示隐藏状态的更多相关文章
- ExtJS4 自己主动生成控制grid的列显示、隐藏的checkbox
因为某种原因.须要做一个控制grid列显示的checkboxgroup,尽管EXTJS4中的gridpanel自带列表能够来控制列的显示隐藏,可是有这种需求(须要一目了然) 以下先上图 waterma ...
- DataGrid列显示隐藏配置
1.列右键事件 private void data1_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { ContextMenu ...
- vue+elementUI表格列显示隐藏遇到bug
在最近的项目中,有需求要做到根据字段显示列,原来以为简单的v-if可以解决. 在开发的过程中遇到问题, <el-table ref="multipleTable" :data ...
- extjs4权限管理,actioncolumn列显示隐藏或禁用
//隐藏getClass: function(v, meta, rec) { if ( someCondition ) { return 'x-hidden' } }//加入其他样式getClass: ...
- Easyui datagrid 显示隐藏列
html: <div style="float: left; width: 1450px; height:auto; "> & ...
- Ext.net自动保存读取GrdPanel列显示状态
//layout保存 function SaveLayOut() { let colVisibleArray = []; for (var i = 0; i < mcp_gridlist.col ...
- easyui datagrid 列显示和隐藏
//当查询IT基础设施的时候隐藏'STAFF_ID'.'ITSM_STAFF_ID' if($("input[name='currentstate']").val()==2){ $ ...
- Ext根据条件显示隐藏列
Ext根据条件显示隐藏列 写在ExtonReady函数里面,并在表格成功渲染之后,可以添加判断是否隐藏或者显示某一列 /* 判断是否显示版本号一列 */ var showVersionFlag = ' ...
- js获取元素显示隐藏的当前状态
js获取元素显示隐藏的当前状态 // CSS var display = $("."+cls).css("display"); if(display == &q ...
随机推荐
- 第12章 代理模式(Proxy Pattern)
原文 第12章 代理模式(Proxy Pattern) 代理模式 概述: 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要 ...
- N-gram统计语言模型(总结)
N-gram统计语言模型 1.统计语言模型 自然语言从它产生開始,逐渐演变成一种上下文相关的信息表达和传递的方式.因此让计算机处理自然语言.一个主要的问题就是为自然语言这样的上下文相关特性建立数学模型 ...
- hdu 4972 A simple dynamic programming problem(高效)
pid=4972" target="_blank" style="">题目链接:hdu 4972 A simple dynamic progra ...
- Eddy's mistakes(字母大小写转换)strlwr函数的应用
Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for ...
- 从Ubuntu12.04升级到Ubuntu 14.04之后,系统将无法启动
进入Ubuntu启动界面.通常有几个选项,Ubuntu,Ubuntu先进... 输入e键,进入grub的设置界面.将里面的ro改动为rw就可以. 以上能够启动,临时性的设置 可是为了永久保存这个设置, ...
- 在LINQ中实现多条件联合主键LEFT JOIN
我昨天遇到一个LINQ下使用多条件比对产生LEFT JOIN的问题,经过深入研究,终于解决了,也让我学到了新的东西,特地拿来分享. 实例:有一张库存异常变更视图KCYD,仓库ID[Ckid]和物品ID ...
- SettingsProvider该CRUD
转载请注明出处:http://blog.csdn.net/droyon/article/details/35558697 什么时候delete要么update时间.需要清空缓存并重新加载数据. 1.i ...
- Google软件构建工具Bazel
转载Google软件构建工具Bazel FAQ 本文是我的翻译,原文在这里.欢迎转载,转载请注名本文作者和原始链接注:如果想了解Bazel的原理,可以看看我之前翻译的Google Blaze原理及使用 ...
- 破解Kaleidoscope-2.1.0-134,无限试用
找到超时时间计算的地方,有非常多处,大概几十外,大约类似下面的代码,作者应该是copy了非常多份反复的代码, 10000C592 F2 0F 10 8D 40 FE FF FF ...
- struts2基本介绍
前言 文本 Struts2 Apache SoftWare Foundation Tomcat/Struts1/Struts2/Ibaitas/ MVC框架:Struts1/Struts2/JSF/W ...