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>从 </label>{0}<label> 到 </label>{1}".FormatTo(sdt.Render(), edt.Render()); return(ContainerTemplate.FormatTo(Id, Label, result, Description)); } return(string.Empty); }
public JsonResult CleanCache(string id) { return(Json(CacheHelper.Remove(NamingCenter.GetCacheKey(CacheType.PAGE_CONFIG, id)))); }
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); }
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]; } } } } } } }