当列表字段过多时,需要隐藏掉一些,但是再次打开页面又显示出来了,FineUI没有提供缓存功能,那么自己动手,打开【ext-part2.js】找到

“if (Ext.grid.column.RowNumberer)”这里添加一个if代码如下

  1. if(Ext.grid.header.Container){
  2. Ext.override(Ext.grid.header.Container,{
  3. onColumnCheckChange:function(checkItem, checked){
  4. var header =Ext.getCmp(checkItem.headerId);
  5. header[checked ?'show':'hide']();
  6. F.customEvent("HeaderSelectedEven:id="+checkItem.headerId+";state="+checked+";grid="+this.grid.id);
  7. }
  8. });
  9. }

效果是这样的

然后在页面的load事件里写

下面我们看WebBase里面的代码

  1. /// <summary>
  2. /// 功能描述:保存dgv隐藏表头id
  3. /// 作  者:huangzh
  4. /// 创建日期:2015-11-20 14:16:06
  5. /// 任务编号:
  6. /// </summary>
  7. /// <param name="strPageName">strPageName</param>
  8. /// <param name="strDgvName">strDgvName</param>
  9. /// <param name="strValues">strValues</param>
  10. public static void SaveDGVHideComs(string strPageName, string strDgvName, string strValues)
  11. {
  12. HttpCookie cookie = new HttpCookie(strPageName + "_" + strDgvName);
  13. cookie.Expires = DateTime.Now.AddMonths();
  14. cookie.Value = strValues;
  15. HttpContext.Current.Response.Cookies.Add(cookie);
  16. }
  17.  
  18. /// <summary>
  19. /// 功能描述:获取DGV隐藏表头id
  20. /// 作  者:huangzh
  21. /// 创建日期:2015-11-20 14:15:55
  22. /// 任务编号:
  23. /// </summary>
  24. /// <param name="strPageName">strPageName</param>
  25. /// <param name="strDgvName">strDgvName</param>
  26. /// <returns>返回值</returns>
  27. public static string GetDGVHideComs(string strPageName, string strDgvName)
  28. {
  29. HttpCookie cookie = HttpContext.Current.Request.Cookies[strPageName + "_" + strDgvName];
  30. if (cookie != null)
  31. {
  32. return cookie.Value;
  33. }
  34. else
  35. {
  36. return "";
  37. }
  38. }
  39.  
  40. /// <summary>
  41. /// 功能描述:检查DGV隐藏表头
  42. /// 作  者:huangzh
  43. /// 创建日期:2015-11-20 14:15:34
  44. /// 任务编号:
  45. /// </summary>
  46. /// <param name="strPageName">strPageName</param>
  47. /// <param name="strDgvName">strDgvName</param>
  48. /// <param name="streventArgument">streventArgument</param>
  49. public static void CheckDGVHideComs(string strPageName, string strDgvName, string streventArgument)
  50. {
  51. if (streventArgument.StartsWith("HeaderSelectedEven:"))
  52. {
  53. string strValues = streventArgument.Substring("HeaderSelectedEven:".Length);
  54. string[] values = strValues.Split(';');
  55. string strid = values[].Split('=')[];
  56. string strstate = values[].Split('=')[];
  57. string strDgvIds = values[].Split('=')[];
  58. string[] names = strDgvIds.Split('_');
  59. if (strDgvName == names[names.Length - ])
  60. {
  61. string strValue = GetDGVHideComs(strPageName, strDgvName);
  62. List<string> lstValues = strValue.Split(',').ToList();
  63. if (strstate.ToLower() == "true")
  64. {
  65. if (lstValues.Contains(strid))
  66. {
  67. lstValues.Remove(strid);
  68. }
  69. }
  70. else
  71. {
  72. if (!lstValues.Contains(strid))
  73. {
  74. lstValues.Add(strid);
  75. }
  76. }
  77.  
  78. strValue = string.Join(",", lstValues);
  79. SaveDGVHideComs(strPageName, strDgvName, strValue);
  80. }
  81. }
  82. }
  83.  
  84. /// <summary>
  85. /// 功能描述:设置dgv隐藏表头
  86. /// 作  者:huangzh
  87. /// 创建日期:2015-11-20 14:20:11
  88. /// 任务编号:
  89. /// </summary>
  90. /// <param name="dgv">dgv</param>
  91. /// <param name="strPageName">strPageName</param>
  92. public static void SetDGVHideCom(FineUI.Grid dgv, string strPageName)
  93. {
  94. string strValue = GetDGVHideComs(strPageName, dgv.ID);
  95. if (!string.IsNullOrEmpty(strValue))
  96. {
  97. dgv.HiddenColumns = strValue.Split(',');
  98. }
  99. }

代码就这么多,我们看下效果吧

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. ftp server来源分析20140602

    ftp  server学习位和源代码分析片 记录自己的第一个开源的分析过程: 从源代码:野狐灯(我接下来的几篇文章是从源头:野狐灯,每个以下哪项不是他们设置.) 20140602 Ftp的源码目录例如 ...

  2. 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)

    这个工具已经准备第二版,读者了解编程软件,可以直接使用,请阅读和使用这个场地 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容 ...

  3. Leetcode dfs Combination SumII

    Combination Sum II Total Accepted: 13710 Total Submissions: 55908My Submissions Given a collection o ...

  4. javascript利用map,every,filter,some,reduce,sort对数组进行最优化处理

    案例: var scoresTable=[ {id:11,name:"小张",score:80}, {id:22,name:"小王",score:95}, {i ...

  5. 清理收缩VMware虚拟机MacOS系统的vmdk文件大小

    屌丝行和差的主要标准,尽管持续性眼贪婪mbp.但是,从另一方面限制患有米,只是在虚拟机中播放MacOS.(我不会告诉你我的笔记本i5+120SSD+500HHD+12G内存,跑MacOS虚拟机一点不卡 ...

  6. html转换为纯文本,支持撇号

    /// <summary> /// html转换为纯文本 /// </summary> /// <param name="source">< ...

  7. WebBrowser控件使用技巧分享

    原文:WebBrowser控件使用技巧分享 在发布“淘宝登货员”时发现不少朋友对WebBrowser控件比较感兴趣,故在此分享一下使用心得. 首先分享一个WebBrowser的扩展类(此类所需的dll ...

  8. hdu2899 Strange fuction

    在区间(0,100).在恒大二阶导数0.f(x)有极小值.用的最低要求的一阶导数值点: #include<math.h> #include<stdio.h> #include& ...

  9. Django小例子 – 模型数据的模板呈现

    学习Django的这几天,学习过程还是很愉快的,django采用的MVC架构,学习曲线十分平缓,在深入学习之前,先简单的整理记录下django从数据库中获取数据并在模板中使用的方法.温故而知新 ^_^ ...

  10. NHibernate中使用memcache二级缓存

    在NHibernate中使用memcache二级缓存 一.Windows下安装Memcache  1. 下载   http://jehiah.cz/projects/memcached-win32/  ...