前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FineUI Grid 缓存列显示隐藏状态

FineUI Grid 缓存列显示隐藏状态

作者头像
冰封一夏
发布2019-09-11 15:28:17
7390
发布2019-09-11 15:28:17
举报

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

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

代码语言:javascript
复制
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里面的代码

代码语言:javascript
复制
        /// <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(12);
            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[0].Split('=')[1];
                string strstate = values[1].Split('=')[1];
                string strDgvIds = values[2].Split('=')[1];
                string[] names = strDgvIds.Split('_');
                if (strDgvName == names[names.Length - 1])
                {
                    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(',');
            }
        }

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-05-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档