当列表字段过多时,需要隐藏掉一些,但是再次打开页面又显示出来了,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 缓存列显示隐藏状态的更多相关文章

  1. ExtJS4 自己主动生成控制grid的列显示、隐藏的checkbox

    因为某种原因.须要做一个控制grid列显示的checkboxgroup,尽管EXTJS4中的gridpanel自带列表能够来控制列的显示隐藏,可是有这种需求(须要一目了然) 以下先上图 waterma ...

  2. DataGrid列显示隐藏配置

    1.列右键事件 private void data1_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { ContextMenu ...

  3. vue+elementUI表格列显示隐藏遇到bug

    在最近的项目中,有需求要做到根据字段显示列,原来以为简单的v-if可以解决. 在开发的过程中遇到问题, <el-table ref="multipleTable" :data ...

  4. extjs4权限管理,actioncolumn列显示隐藏或禁用

    //隐藏getClass: function(v, meta, rec) { if ( someCondition ) { return 'x-hidden' } }//加入其他样式getClass: ...

  5. Easyui datagrid 显示隐藏列

    html:         <div style="float: left; width: 1450px; height:auto;  ">             & ...

  6. Ext.net自动保存读取GrdPanel列显示状态

    //layout保存 function SaveLayOut() { let colVisibleArray = []; for (var i = 0; i < mcp_gridlist.col ...

  7. easyui datagrid 列显示和隐藏

    //当查询IT基础设施的时候隐藏'STAFF_ID'.'ITSM_STAFF_ID' if($("input[name='currentstate']").val()==2){ $ ...

  8. Ext根据条件显示隐藏列

    Ext根据条件显示隐藏列 写在ExtonReady函数里面,并在表格成功渲染之后,可以添加判断是否隐藏或者显示某一列 /* 判断是否显示版本号一列 */ var showVersionFlag = ' ...

  9. js获取元素显示隐藏的当前状态

    js获取元素显示隐藏的当前状态 // CSS var display = $("."+cls).css("display"); if(display == &q ...

随机推荐

  1. 私人定制javascript中函数小知识点

    函数的定义 首先在javascript中,函数就是对象,程序可以随意操控它们.比如,可以给它们设置属性,甚至调用它们的方法.函数使用function关键字来定义.它既可以用在函数定义表达式,也可以用在 ...

  2. TRIZ系列-创新原理-28-替代机械系统原理

    替代机械系统原理的详细描写叙述例如以下:1)用光.声.热.嗅觉系统替代机械系统:2)用电.磁或电磁场来与物体交互作用:3)用移动场替代精巧场,用随时间变化的场替代固定场,用结构化的场替代随机场:4)使 ...

  3. iframe的各项參数

    iframe的各项參数: <iframe src="test.jsp" width="100″ height="50″ frameborder=" ...

  4. Bash shell 简单的并行任务,并等待

    首先启动两个command line对于实验 第一 command line 依次输入: bash$ sleep 10001 & [1] 38272 bash$ job1=$! bash$ s ...

  5. javascript中三目运算符和if else有什么区别

    javascript中三目运算符和if else有什么区别今天写了一个图片轮播的小demo,用到了判断先试了一下if else,代码如下:if(n >= count-1){n =0;}else{ ...

  6. HTML页面的动画的制作及性能

    原文:HTML页面的动画的制作及性能 WEB页面的动画的制作及性能 简介 目前WEB页面做动画的方式大的分两种1.JS间隔时间不断修改元素属性值,这也是CSS3出来前常用的做法,貌似也是唯一的做法.2 ...

  7. 浅谈 js eval作用域

    原文:浅谈 js eval作用域 就简单聊下如何全局 eval 一个代码. var x = 1; (function () { eval('var x = 123;'); })(); console. ...

  8. Fedora21无法播放MP4[已解决]

    首先,安装安装rpmfusion源 http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-21.noarch.rpm ht ...

  9. VS2015集成新潮工具4

    VS2015集成新潮工具(四)   本课程来源与微软connect视频教程,Modern Web Tooling in Visual Studio 2015 本课程主要讲下当下流行的前端工具 bowe ...

  10. 使用STM32CubeMX来创建属于自己的工程

    使用STM32CubeMX的好处就是GPIO口可以使用图形化的方式进行配置,配置完成之后可以立即生成支持多种编译器的工程文件,之后打开即可编译通过了,非常方便. 操作很简单,如下所述: 1 从ST的官 ...