private bool UpdateExtendField(ExtendedFieldType fieldType, string key)
		{
            MsgDisplayForSaveSettings = CreateMessageDisplay();
			ExtendedField extendFiled = GetExtendFieldInfo(fieldType);

			extendFiled.Key = key;

            ExtendedFieldSettings settings = SettingManager.CloneSetttings<ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);

			settings.Version = Guid.NewGuid().ToString();

            ExtendedFieldCollection fields = new ExtendedFieldCollection();

            ExtendedFieldDisplayType? oldDisplayType = null;
            foreach (ExtendedField field in settings.Fields)
			{
                if (field.Key == extendFiled.Key)
                {
                    fields.Add(extendFiled);
                    oldDisplayType = field.DisplayType;
                }
                else
                {
                    if (string.Compare(extendFiled.Name, field.Name, true) == 0)
                    {
                        MsgDisplayForSaveSettings.AddError("已经存在同名的扩展字段\"" + field.Name + "\",请更换名称");
                        break;
                    }
                    else
                        fields.Add(field);
                }
			}

            if (MsgDisplayForSaveSettings.HasAnyError())
                return false;

            if (oldDisplayType!=null && extendFiled.DisplayType != oldDisplayType.Value)
            {
                UserBO.Instance.UpdateUserExtendFieldPrivacy(extendFiled.Key, extendFiled.DisplayType);
            }

            settings.Fields = fields;
			SettingManager.SaveSettings(settings);
            return true;
		}
		private ExtendedField GetExtendFieldInfo(ExtendedFieldType fieldType)
		{
			ExtendedField extendFiled = new ExtendedField();

			extendFiled.FieldTypeName = fieldType.TypeName;
			extendFiled.Name = _Request.Get("Name", Method.Post);
			extendFiled.Description = _Request.Get("Description", Method.Post);
            extendFiled.IsRequired = _Request.Get("IsRequired", Method.Post) == "True";
            extendFiled.IsHidden = _Request.Get("IsHidden", Method.Post) == "True";
			extendFiled.Searchable = _Request.Get("Searchable", Method.Post) == "True";
            extendFiled.DisplayType = _Request.Get<ExtendedFieldDisplayType>("DisplayType", Method.Post, ExtendedFieldDisplayType.AllVisible);
            extendFiled.SortOrder = _Request.Get<int>("SortOrder", Method.Post, 0);

			extendFiled.Settings = fieldType.LoadSettingsFromRequest();

			return extendFiled;
		}
		private bool CreateExtendField(ExtendedFieldType fieldType)
		{
            MessageDisplay msgDisplay = CreateMessageDisplay();
			ExtendedField extendFiled = GetExtendFieldInfo(fieldType);

			extendFiled.Key = Guid.NewGuid().ToString();

            ExtendedFieldSettings settings = SettingManager.CloneSetttings<ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);
			settings.Version = Guid.NewGuid().ToString();

            foreach (ExtendedField field in AllSettings.Current.ExtendedFieldSettings.Fields)
            {
                if (string.Compare(extendFiled.Name, field.Name, true) == 0)
                {
                    msgDisplay.AddError("已经存在同名的扩展字段\"" + field.Name + "\",请更换名称");
                    break;
                }
            }

            if (msgDisplay.HasAnyError())
                return false;

			settings.Fields.Add(extendFiled);

			SettingManager.SaveSettings(settings);
            return true;
		}