protected override void OnLoad(EventArgs e)
        {
            if (this.Visible)
            {
                //using (SPSite site = SPContext.Current.Site)
                SPSite site = SPContext.Current.Site;
                {
                    //SPFeature listDisplaySettingFeature = site.Features[new Guid("88E9E47A-BA92-47ab-A253-8AA472CCC76B")];

                    //if ((listDisplaySettingFeature != null) && (listDisplaySettingFeature.Definition.Status == Microsoft.SharePoint.Administration.SPObjectStatus.Online))
                    //{
                    if (View.ParentList.ParentWeb.Properties.ContainsKey(String.Format("ViewPermissions{0}", View.ParentList.ID.ToString())))
                    {
                        featureEnabled = true;
                        roleProperties = new Dictionary <int, Dictionary <string, bool> >();
                        defaultViews   = new Dictionary <int, string>();

                        SPWeb web = View.ParentList.ParentWeb;
                        {
                            ViewPermissionUtil.ConvertFromString(ref roleProperties, ref defaultViews, web.Properties[String.Format("ViewPermissions{0}", View.ParentList.ID.ToString())], View.ParentList);

                            if (!UserCanSeeView(base.RenderContext.ViewContext.View.Url, roleProperties))
                            {
                                SPUtility.Redirect(GoToDefaultView(defaultViews).ServerRelativeUrl, SPRedirectFlags.Default, HttpContext.Current, "redirect=true");
                            }
                            else
                            {
                                if (!ComeFromView())
                                {
                                    SPUtility.Redirect(GoToDefaultView(defaultViews).ServerRelativeUrl, SPRedirectFlags.Default, HttpContext.Current, "redirect=true");
                                }
                            }
                        }
                    }
                    foreach (SPView view in View.ParentList.Views)
                    {
                        if ((!view.Hidden) && (!view.PersonalView))
                        {
                            views.Add(view);
                        }
                    }
                    //}
                }

                base.OnLoad(e);
            }
            else
            {
                base.OnLoad(e);
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            if (this.Visible)
            {
                //using (SPSite site = SPContext.Current.Site)
                SPSite site = SPContext.Current.Site;
                {
                    //SPFeature listDisplaySettingFeature = site.Features[new Guid("88E9E47A-BA92-47ab-A253-8AA472CCC76B")];

                    //if ((listDisplaySettingFeature != null) && (listDisplaySettingFeature.Definition.Status == Microsoft.SharePoint.Administration.SPObjectStatus.Online))
                    //{
                    if (View.ParentList.ParentWeb.Properties.ContainsKey(String.Format("ViewPermissions{0}", View.ParentList.ID.ToString())))
                    {
                        featureEnabled = true;
                        roleProperties = new Dictionary <int, Dictionary <string, bool> >();
                        defaultViews   = new Dictionary <int, string>();

                        SPWeb web = View.ParentList.ParentWeb;
                        {
                            ViewPermissionUtil.ConvertFromString(ref roleProperties, ref defaultViews, web.Properties[String.Format("ViewPermissions{0}", View.ParentList.ID.ToString())], View.ParentList);
                        }
                    }
                    foreach (SPView view in View.ParentList.Views)
                    {
                        if ((!view.Hidden) && (!view.PersonalView))
                        {
                            views.Add(view);
                        }
                    }
                    //}
                }

                base.OnLoad(e);

                //if(featureEnabled)
                {
                    try
                    {
                        NameValueCollection nv    = HttpUtility.ParseQueryString(Page.Request.UrlReferrer.Query);
                        StringBuilder       sbUrl = new StringBuilder();


                        bool bPersonal = false;
                        try
                        {
                            if (nv["PageView"] == "Personal")
                            {
                                bPersonal = true;
                            }
                        }
                        catch { }

                        if (!bPersonal)
                        {
                            foreach (string key in nv.AllKeys)
                            {
                                if (isValidQS(key))
                                {
                                    sbUrl.Append("&");
                                    sbUrl.Append(key);
                                    sbUrl.Append("=");
                                    sbUrl.Append(HttpUtility.UrlEncode(nv[key]));
                                }
                            }

                            foreach (Control item in base.MenuTemplateControl.Controls)
                            {
                                try
                                {
                                    if ((item is MenuItemTemplate) && (View.ParentList.Views[((MenuItemTemplate)item).Text]) != null)
                                    {
                                        if (featureEnabled)
                                        {
                                            item.Visible = UserCanSeeView(View.ParentList.Views[((MenuItemTemplate)item).Text].Url, roleProperties);
                                        }
                                    }

                                    Microsoft.SharePoint.WebControls.MenuItemTemplate mn = (Microsoft.SharePoint.WebControls.MenuItemTemplate)item;
                                    string sDoc = System.IO.Path.GetFileName(mn.ClientOnClickNavigateUrl);

                                    if (!sDoc.Contains("ViewEdit.aspx?") && !sDoc.Contains("ViewType.aspx?"))
                                    {
                                        if (sbUrl.ToString() != "")
                                        {
                                            //mn.ClientOnClickScript = mn.ClientOnClickScript.Insert(mn.ClientOnClickScript.Length - 3, "?" + sbUrl.ToString().TrimStart('&'));
                                            mn.ClientOnClickNavigateUrl += "?" + sbUrl.ToString().TrimStart('&');
                                        }
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                    catch { }
                }
            }
            else
            {
                base.OnLoad(e);
            }
        }