protected void SaveCustomDisplay(object sender, EventArgs e)
        {
            _fieldProperties = new Dictionary <string, Dictionary <string, string> >();

            foreach (string field in _hiddenFields.Keys)
            {
                _fieldProperties.Add(field, new Dictionary <string, string>());
                foreach (string mode in _hiddenFields[field].Keys)
                {
                    _fieldProperties[field].Add(mode, HttpContext.Current.Request.Params[_hiddenFields[field][mode]]);
                }
            }

            if (
                !CurrentList.ParentWeb.Properties.ContainsKey(String.Format("DisplaySetting{0}",
                                                                            CurrentList.ID)))
            {
                CurrentList.ParentWeb.Properties.Add(String.Format("DisplaySetting{0}", CurrentList.ID),
                                                     SPSWebPropertiesHelper.Encode(_fieldProperties));
            }
            else
            {
                CurrentList.ParentWeb.Properties[String.Format("DisplaySetting{0}", CurrentList.ID)] =
                    SPSWebPropertiesHelper.Encode(_fieldProperties);
            }

            CurrentList.ParentWeb.Properties.Update();

            SPUtility.Redirect(string.Format("listedit.aspx?List={0}", CurrentList.ID),
                               SPRedirectFlags.RelativeToLayoutsPage,
                               HttpContext.Current);
            //Server.Transfer(string.Format("~/_layouts/listedit.aspx?List={0}", CurrentList.ID), true);
        }
        protected override void OnLoad(EventArgs e)
        {
            Title = "Administrate Form Fields";

            if (
                CurrentList.ParentWeb.Properties.ContainsKey(String.Format("DisplaySetting{0}",
                                                                           CurrentList.ID)))
            {
                _fieldProperties =
                    SPSWebPropertiesHelper.Decode(
                        CurrentList.ParentWeb.Properties[String.Format("DisplaySetting{0}", CurrentList.ID)]);
            }

            // récupération de la liste des champs affichables et des settings dejà défini
            foreach (SPField field in CurrentList.Fields)
            {
                if ((field.Reorderable))
                {
                    _displayableFields.Add(field);
                }
            }

            // Récupération des groups
            foreach (SPGroup group in CurrentList.ParentWeb.Groups)
            {
                _groups.Add(group);
            }

            _pageRender = PrepareRenderPage();
            RegisterScript();

            Cancel.PostBackUrl = string.Format("~/_layouts/listedit.aspx?List={0}", CurrentList.ID);
        }
예제 #3
0
        protected override bool IsFieldExcluded(SPField field)
        {
            if (CheckIfFeatureIsEnabled())
            {
                string key = String.Format("DisplaySetting{0}", SPContext.Current.List.ID);

                if (SPContext.Current.List.ParentWeb.Properties.ContainsKey(key))
                {
                    var fieldProperties = SPSWebPropertiesHelper.Decode(
                        SPContext.Current.List.ParentWeb.Properties[key]);

                    string displaySettings;

                    if (!fieldProperties.ContainsKey(field.InternalName))
                    {
                        return(base.IsFieldExcluded(field));
                    }

                    switch (SPContext.Current.FormContext.FormMode)
                    {
                    case SPControlMode.Display:
                    {
                        displaySettings = fieldProperties[field.InternalName]["Display"];

                        GetAttributes(displaySettings);

                        return(NecesaryRender(field));
                    }

                    case SPControlMode.Edit:
                    {
                        displaySettings = fieldProperties[field.InternalName]["Edit"];

                        GetAttributes(displaySettings);

                        return(NecesaryRender(field));
                    }

                    case SPControlMode.New:
                    {
                        if (!fieldProperties[field.InternalName].ContainsKey("New"))
                        {
                            return(base.IsFieldExcluded(field));
                        }

                        displaySettings = fieldProperties[field.InternalName]["New"];
                        GetAttributes(displaySettings);

                        return(NecesaryRender(field));
                    }

                    default:
                        return(base.IsFieldExcluded(field));
                    }
                }
                return(base.IsFieldExcluded(field));
            }
            return(base.IsFieldExcluded(field));
        }