private string SelectFromProperties(SPList currentList, SPField currentField, SPControlMode controlMode, string fieldStatus)
        {
            try
            {
                StringBuilder propertyValue = new StringBuilder();
                propertyValue.Append(Definitions.prefix + Definitions.separator);
                propertyValue.Append(currentList.ID + Definitions.separator);
                propertyValue.Append(currentField.Id + Definitions.separator);
                propertyValue.Append(controlMode.ToString() + Definitions.separator);
                propertyValue.Append(fieldStatus);

                string propertyToSite = propertyValue.ToString();

                if (currentSite.RootWeb.AllProperties.ContainsKey(propertyToSite))
                {
                    return(currentSite.RootWeb.AllProperties[propertyToSite].ToString());
                }
                else
                {
                    return(String.Empty);
                }
            }
            catch (Exception ex)
            {
                errorText.Text = "Error on Load Column:<br />" + ex.Message;
                return(String.Empty);
            }
        }
        private void SaveToProperties(SPList currentList, SPField currentField, SPControlMode controlMode, string fieldStatus, string value, int clear)
        {
            try
            {
                StringBuilder propertyValue = new StringBuilder();
                propertyValue.Append(Definitions.prefix + Definitions.separator);
                propertyValue.Append(currentList.ID + Definitions.separator);
                propertyValue.Append(currentField.Id + Definitions.separator);
                propertyValue.Append(controlMode.ToString() + Definitions.separator);
                propertyValue.Append(fieldStatus);

                string propertyToSite = propertyValue.ToString();

                if (clear == 0)
                {
                    currentSite.RootWeb.AllProperties.Remove(propertyToSite);
                }
                else
                {
                    if (currentSite.RootWeb.AllProperties.ContainsKey(propertyToSite))
                    {
                        currentSite.RootWeb.AllProperties[propertyToSite] = value;
                    }
                    else
                    {
                        currentSite.RootWeb.AllProperties.Add(propertyToSite, value);
                    }
                }

                currentSite.RootWeb.Update();
                currentSite.RootWeb.Properties.Update();
            }
            catch (Exception ex)
            {
                errorText.Text = "Error on Save Column:<br />" + ex.Message;
            }
        }
        public string GetValueFromProperty(SPField field, string fieldStatus, SPControlMode controlMode, bool isViewOrAlert)
        {
            SPList  currentList;
            SPItem  currentItem;
            SPField currentField;

            if (isViewOrAlert)
            {
                currentList  = field.ParentList;
                currentField = field;
            }
            else
            {
                BaseFieldControl webControl = field.FieldRenderingControl;
                currentList  = webControl.List;
                currentItem  = webControl.Item;
                currentField = webControl.Field;

                Guid?  currentListId    = webControl.ListId;
                int?   currentItemIdInt = webControl.ItemId;
                string currentItemId    = webControl.Field.Id.ToString();
                string currentValue     = webControl.ItemFieldValue == null ? "" : webControl.ItemFieldValue.ToString();
            }


            StringBuilder propertyValue = new StringBuilder();

            propertyValue.Append(Definitions.prefix + Definitions.separator);
            propertyValue.Append(currentList.ID + Definitions.separator);
            propertyValue.Append(currentField.Id + Definitions.separator);
            propertyValue.Append(controlMode.ToString() + Definitions.separator);
            propertyValue.Append(fieldStatus);

            //SPGuys_ListId_FieldId_FormMode_ReadOnly Hidden
            string propertyFromWeb = propertyValue.ToString();

            //SPGuys_b9a223e1-58da-4608-aaf4-0a0c2f1d6b0e_fa564e0f-0c70-4ab9-b863-0177e6ddd247_New_Hidden   title
            //SPGuys_b9a223e1-58da-4608-aaf4-0a0c2f1d6b0e_6e180dd1-762e-46a0-8ffd-7925b70e699e_New_ReadOnly   people

            if (propertyFromWeb.Contains(SPBuiltInFieldId.LinkTitle.ToString()))
            {
                propertyFromWeb = propertyFromWeb.Replace(SPBuiltInFieldId.LinkTitle.ToString(), SPBuiltInFieldId.Title.ToString());
            }

            if (propertyFromWeb.Contains(SPBuiltInFieldId.LinkTitleNoMenu.ToString()))
            {
                propertyFromWeb = propertyFromWeb.Replace(SPBuiltInFieldId.LinkTitleNoMenu.ToString(), SPBuiltInFieldId.Title.ToString());
            }

            //Toto tu je kvoli tomu ze ked volam priamo tuto metodu na zistenie detailov pre ListField.aspx
            if (currentSite == null)
            {
                currentSite = SPContext.Current.Site;
                currentWeb  = SPContext.Current.Web;
            }

            if (currentSite.RootWeb.AllProperties[propertyFromWeb] != null)
            {
                //Musim replacovat \\\\ aj ked do property ulozim len \\ ale on tam doplni \\ potrebujem to mat v stave sp2010\\Administrator nie sp2010\\\\Administrator
                //return currentSite.RootWeb.AllProperties[propertyFromWeb].ToString().Replace("\\\\", "\\");

                return(currentSite.RootWeb.AllProperties[propertyFromWeb].ToString()); //Tu sa to zapisuje inak preto nam to nie je treba replacovat
            }

            return(String.Empty);
        }