Esempio n. 1
0
 public override string Render()
 {
     if (Visiable)
     {
         if (!this.Value.IsNullOrEmpty())
         {
             string[] timeRangeArr = this.Value.Split(',');
             DefaultStartValue = timeRangeArr[0];
             if (timeRangeArr.Length > 1)
             {
                 DefaultEndValue = timeRangeArr[1];
             }
         }
         if (Name.IsNullOrEmpty())
         {
             Name = Id;
         }
         if (!DefaultStartValue.IsNullOrEmpty())
         {
             DefaultStartValue = Env.Parse(DefaultStartValue);
         }
         if (!DefaultEndValue.IsNullOrEmpty())
         {
             DefaultEndValue = Env.Parse(DefaultEndValue);
         }
         DatePicker sdt = new DatePicker()
         {
             Value = DefaultStartValue, ShowPreNextButton = false, CssClass = this.CssClass, DateTimeFormat = this.DateTimeFormat, GreaterThanToday = this.GreaterThanToday, Maximum = this.Maximum, Minimum = this.Minimum, ShowWeek = this.ShowWeek, Id = NamingCenter.GetTimeRangeDatePickerStartId(this.Name), Name = NamingCenter.GetTimeRangeDatePickerStartId(this.Name), MaxDateControl = NamingCenter.GetTimeRangeDatePickerEndId(this.Name)
         };
         DatePicker edt = new DatePicker()
         {
             Value = DefaultEndValue, ShowPreNextButton = false, CssClass = this.CssClass, DateTimeFormat = this.DateTimeFormat, GreaterThanToday = this.GreaterThanToday, Maximum = this.Maximum, Minimum = this.Minimum, ShowWeek = this.ShowWeek, Id = NamingCenter.GetTimeRangeDatePickerEndId(this.Name), Name = NamingCenter.GetTimeRangeDatePickerEndId(this.Name), MinDateControl = NamingCenter.GetTimeRangeDatePickerStartId(this.Name)
         };
         string result = "<label>从&nbsp;</label>{0}<label>&nbsp;到&nbsp;</label>{1}".FormatTo(sdt.Render(), edt.Render());
         return(ContainerTemplate.FormatTo(Id, Label, result, Description));
     }
     return(string.Empty);
 }
Esempio n. 2
0
 public JsonResult CleanCache(string id)
 {
     return(Json(CacheHelper.Remove(NamingCenter.GetCacheKey(CacheType.PAGE_CONFIG, id))));
 }
Esempio n. 3
0
        public static Form GetFormComponent(Type entityType)
        {
            string formId = NamingCenter.GetEntityFormId(entityType);
            string key    = NamingCenter.GetCacheKey(CacheType.ENTITY_CONFIG, formId);
            var    result = CacheHelper.GetFromCache <Form>(key, () =>
            {
                var returnValue = new Form();
                returnValue.Id  = formId;
                var pis         = FastType.Get(entityType).Setters;
                int rank        = 0;
                foreach (var fp in pis)
                {
                    var p = fp.Info;
                    if (!(p.PropertyType == typeof(string)) && !p.PropertyType.IsValueType)
                    {
                        continue;
                    }
                    object defaultValue            = null;
                    string label                   = string.Empty;
                    FormControlBase fieldComponent = null;
                    bool canModify                 = true;
                    var formAttr                   = p.GetCustomAttribute <FormFieldAttribute>(true);
                    if (formAttr != null)
                    {
                        if (!formAttr.Editable)
                        {
                            continue;
                        }
                        label        = formAttr.FormDisplayName;
                        defaultValue = formAttr.DefaultValue;
                        if (formAttr.ControlType != ControlType.None)
                        {
                            switch (formAttr.ControlType)
                            {
                            case ControlType.DateTimeRange:
                            case ControlType.DatePicker:
                                fieldComponent = new DatePicker();
                                break;

                            case ControlType.DropDownList:
                                fieldComponent = new DropDownList();
                                break;

                            case ControlType.Password:
                                fieldComponent = new TextBox()
                                {
                                    TextMode = TextMode.Password
                                };
                                break;

                            case ControlType.CheckBox:
                                fieldComponent = new CheckBox();
                                break;

                            case ControlType.CheckBoxList:
                                fieldComponent = new CheckBoxList();
                                break;

                            case ControlType.RadioButton:
                                fieldComponent = new RadioButton();
                                break;

                            case ControlType.RadioButtonList:
                                fieldComponent = new RadioButtonList();
                                break;

                            case ControlType.TextArea:
                                fieldComponent = new TextArea();
                                break;

                            case ControlType.TextEditor:
                                fieldComponent = new TextEditor();
                                break;
                            }
                        }
                        canModify = formAttr.CanModity;
                    }
                    if (fieldComponent == null)
                    {
                        if (p.PropertyType.IsEnum)
                        {
                            fieldComponent = new DropDownList()
                            {
                                DataSource = new EnumDataSource()
                                {
                                    EnumTypeFullName = p.PropertyType.FullName, EnumValueType = EnumValueType.Code
                                }
                            };
                        }
                        else if (p.PropertyType == typeof(bool))
                        {
                            fieldComponent = new DropDownList()
                            {
                                DataSource = new EnumDataSource()
                                {
                                    EnumTypeFullName = typeof(YesOrNo).FullName, EnumValueType = EnumValueType.Code
                                }
                            };
                        }
                        else if (p.PropertyType == typeof(DateTime))
                        {
                            fieldComponent = new DatePicker();
                        }
                        else
                        {
                            fieldComponent = new TextBox();
                        }
                    }
                    var formAttr1 = p.GetCustomAttribute <DataSourceAttribute>(true);
                    if (formAttr1 != null)
                    {
                        if (fieldComponent is IKeyValueDataSourceControl)
                        {
                            (fieldComponent as IKeyValueDataSourceControl).DataSource = formAttr1.GetDataSource() as IKeyValueDataSource;
                        }
                    }
                    fieldComponent.Description = p.GetDescription();
                    if (label.IsNullOrEmpty())
                    {
                        label = p.GetDisplayName();
                    }
                    var attr1 = p.GetCustomAttribute <DefaultValueAttribute>(true);
                    if (attr1 != null)
                    {
                        defaultValue = attr1.Value;
                    }
                    var attr2 = p.GetCustomAttribute <ValidatorAttribute>(true);
                    if (attr2 != null)
                    {
                        fieldComponent.Validator = attr2.ValidateString;
                    }
                    fieldComponent.Label     = label;
                    fieldComponent.Id        = p.Name;
                    fieldComponent.CanModity = canModify;
                    fieldComponent.Rank      = (++rank);
                    fieldComponent.Value     = defaultValue == null ? "" : defaultValue.ToString();
                    returnValue.Fields.Add(fieldComponent);
                }
                foreach (var btn in ControlDefaultSetting.GetDefaultFormButton())
                {
                    returnValue.Buttons.Add(btn);
                }
                returnValue.Fields.Add(new HiddenField()
                {
                    Id = ControlModelBinder.EntityFullNameHiddenName, Value = entityType.FullName + "," + entityType.Assembly.FullName
                });
                return(returnValue);
            });

            return(result.Clone() as Form);
        }
Esempio n. 4
0
 public void SetTarget(IList <IControl> components)
 {
     if (!Fields.IsNullOrEmpty())
     {
         var    formData = new FoxOneDictionary <string, object>(StringComparer.OrdinalIgnoreCase);
         string key      = string.Empty;
         var    request  = HttpContext.Current.Request;
         foreach (var f in Fields)
         {
             if (f is TimeRangePicker)
             {
                 //日期范围控件特殊处理
                 var dt = f as TimeRangePicker;
                 if (!dt.DefaultStartValue.IsNullOrEmpty())
                 {
                     formData.Add(NamingCenter.GetTimeRangeDatePickerStartId(dt.Name), DateTime.Parse(Env.Parse(dt.DefaultStartValue)).ToString(dt.DateTimeFormat));
                 }
                 if (!dt.DefaultEndValue.IsNullOrEmpty())
                 {
                     formData.Add(NamingCenter.GetTimeRangeDatePickerEndId(dt.Name), DateTime.Parse(Env.Parse(dt.DefaultEndValue)).ToString(dt.DateTimeFormat));
                 }
             }
             else if (f is DatePicker)
             {
                 if (!f.Value.IsNullOrEmpty())
                 {
                     key = f.Name.IsNullOrEmpty() ? f.Id : f.Name;
                     var d = f as DatePicker;
                     formData.Add(key, DateTime.Parse(Env.Parse(f.Value)).ToString(d.DateTimeFormat));
                 }
             }
             else
             {
                 if (!f.Value.IsNullOrEmpty())
                 {
                     key = f.Name.IsNullOrEmpty() ? f.Id : f.Name;
                     if (!request.Form.AllKeys.Contains(key) && !request.QueryString.AllKeys.Contains(key))
                     {
                         formData.Add(key, Env.Parse(f.Value));
                     }
                 }
             }
         }
         foreach (var c in components)
         {
             if (c is IListDataSourceControl)
             {
                 var ds = (c as IListDataSourceControl).DataSource;
                 if (ds != null)
                 {
                     if (ds.Parameter == null)
                     {
                         ds.Parameter = formData;
                     }
                     else
                     {
                         var dict = ds.Parameter as Dictionary <string, object>;
                         foreach (var f in formData.Keys)
                         {
                             dict[f] = formData[f];
                         }
                     }
                 }
             }
         }
     }
 }