protected override WebControl CreateEditModeControlCore() { ASPxTextBox textBox = RenderHelper.CreateASPxTextBox(); textBox.TextChanged += ((sender, e) => WriteValue()); return(textBox); }
protected override WebControl CreateEditModeControlCore() { if (AllowEdit) { var textBox = RenderHelper.CreateASPxTextBox(); textBox.MaxLength = MaxLength; textBox.ValidationSettings.RegularExpression.ValidationExpression = UrlEmailMask; textBox.TextChanged += ExtendedEditValueChangedHandler; return(textBox); } return(CreateHyperLink()); }
protected override WebControl CreateEditModeControlCore() { if (AllowEdit.ResultValue) { ASPxTextBox textBox = RenderHelper.CreateASPxTextBox(); textBox.ID = "textBox"; textBox.ValidationSettings.RegularExpression.ValidationExpression = UrlEmailMask; textBox.ValidationSettings.RegularExpression.ErrorText = UserVisibleExceptionLocalizer.GetExceptionMessage(UserVisibleExceptionId.MaskValidationErrorMessage); textBox.TextChanged += EditValueChangedHandler; return(textBox); } else { return(CreateViewModeControlCore()); } }
protected override WebControl CreateEditModeControlCore() { var datePickePersianrId = $"DatePickerPersian{PropertyName}"; var persianGotFocusGuid = System.Guid.NewGuid().ToString(); datePickerPersian = RenderHelper.CreateASPxTextBox(); datePickerPersian.ID = datePickePersianrId; datePickerPersian.ValueChanged += DatePickerPersian_ValueChanged; datePickerPersian.Validation += TralusDateTimeControlPersian_Validation; datePickerPersian.ValidationSettings.EnableCustomValidation = true; datePickerPersian.ValidationSettings.ValidateOnLeave = false; datePickerPersian.CssClass = "input-date-picker datepicker-rtl"; datePickerPersian.SetClientSideEventHandler("GotFocus", string.Format("/*{0}*/ function(s, e) {{document.isMenuClicked = false; }} /*{0}*/", persianGotFocusGuid)); datePickerPersian.ClientSideEvents.Init = string.Format("function Init(s,e) {{ var input = s.GetInputElement(); jQuery(input).datepicker({{ autoclose: true, language: 'fa', rtl: false, weekStart: 1, calendar: 'persian', todayBtn: true, format:'yyyy/mm/dd' }}); }}"); return(datePickerPersian); }
protected override WebControl CreateEditModeControlCore() { //$('#Vertical_v1_50539512_MainLayoutEdit_xaf_l19_PersianDatePickerScheduledOnDateTime_I').data('datepicker').getDate() Calendars = new Dictionary <string, System.Globalization.Calendar>(); Calendars["EN"] = new GregorianCalendar(); Calendars["FA"] = TralusDateTime.AltCalendar; var datePickePersianrId = string.Format("DatePickerPersian{0}", PropertyName); var datePickerGregorianId = string.Format("DatePickerGregorian{0}", PropertyName); var clockPickerId = string.Format("ClockPicker{0}", propertyName); var comboBoxCalendarId = string.Format("ComboBoxCalendar{0}", propertyName); var comboBoxTimeZoneId = string.Format("ComboBoxTimeZone{0}", propertyName); var gregorianGotFocusGuid = System.Guid.NewGuid().ToString(); var gregorianGotFocusValueChangedGuid = System.Guid.NewGuid().ToString(); var persianGotFocusGuid = System.Guid.NewGuid().ToString(); var persianGotValueChangedGuid = System.Guid.NewGuid().ToString(); var clockPickerGotFocusGuid = System.Guid.NewGuid().ToString(); var clockPickerGotValueChangedGuid = System.Guid.NewGuid().ToString(); datePickerGregorian = RenderHelper.CreateASPxTextBox(); datePickerGregorian.ID = datePickerGregorianId; datePickerGregorian.Validation += TralusDateTimeControlGregorian_Validation; datePickerGregorian.ValidationSettings.EnableCustomValidation = true; datePickerGregorian.ValidateRequestMode = System.Web.UI.ValidateRequestMode.Enabled; datePickerGregorian.ValidationSettings.ValidateOnLeave = true; datePickerGregorian.CssClass = "input-date-picker datepicker-ltr"; datePickerGregorian.SetClientSideEventHandler("GotFocus", string.Format(" /*{0}*/ function(s, e) {{ document.isMenuClicked = false; }} /*{0}*/", gregorianGotFocusGuid)); datePickerGregorian.SetClientSideEventHandler("ValueChanged", string.Format(" /*{0}*/ function(s,e) {{ window.setTimeout(function() {{ if(!document.isMenuClicked) {{ RaiseXafCallback(globalCallbackControl, '', '', '', false); }}document.isMenuClicked = false;}}, 500); }} /*{0}*/", gregorianGotFocusValueChangedGuid)); datePickerGregorian.ClientSideEvents.Init = string.Format("function Init(s,e) {{ var input = s.GetInputElement(); jQuery(input).datepicker({{ autoclose: true, language: 'en', rtl: false, weekStart: 1, calendar: 'gregorian', todayBtn: true, format:'yyyy/mm/dd' }}); }}"); datePickerPersian = RenderHelper.CreateASPxTextBox(); datePickerPersian.ID = datePickePersianrId; datePickerPersian.Validation += TralusDateTimeControlPersian_Validation; datePickerPersian.ValidationSettings.EnableCustomValidation = true; datePickerPersian.ValidateRequestMode = System.Web.UI.ValidateRequestMode.Enabled; datePickerPersian.ValidationSettings.ValidateOnLeave = true; datePickerPersian.CssClass = "input-date-picker datepicker-rtl"; datePickerPersian.SetClientSideEventHandler("GotFocus", string.Format("/*{0}*/ function(s, e) {{document.isMenuClicked = false; }} /*{0}*/", persianGotFocusGuid)); datePickerPersian.SetClientSideEventHandler("ValueChanged", string.Format(" /*{0}*/ function(s,e) {{ var selectedDate = $('#'+s.GetInputElement().id).data('datepicker').getDate(); window.setTimeout(function() {{ if(!document.isMenuClicked) {{ RaiseXafCallback(globalCallbackControl, '', selectedDate, '', false); }} document.isMenuClicked = false;}}, 500); }} /*{0}*/", persianGotValueChangedGuid)); datePickerPersian.ClientSideEvents.Init = string.Format("function Init(s,e) {{ var input = s.GetInputElement(); jQuery(input).datepicker({{ autoclose: true, language: 'fa', rtl: false, weekStart: 1, calendar: 'persian', todayBtn: true, format:'yyyy/mm/dd' }}); }}"); comboBoxCalendar = RenderHelper.CreateASPxComboBox(); comboBoxCalendar.ID = comboBoxCalendarId; comboBoxCalendar.Items.Add("EN", "EN"); comboBoxCalendar.Items.Add("FA", "FA"); comboBoxCalendar.SelectedIndex = 0; comboBoxCalendar.ClientSideEvents.SelectedIndexChanged = string.Format("function(combo) {{ {0}SelectedCalendar(combo.lastSuccessValue); }}", PropertyName); comboBoxCalendar.ClientSideEvents.Init = string.Format("function OnInit(s,e){{ {0}SelectedCalendar(s.lastSuccessValue); }}", PropertyName); var table = RenderHelper.CreateTable(); var row = new TableRow(); var tableCellDatePickerPersian = new TableCell(); var tableCellDatePickerGregorian = new TableCell(); var tableCellComboBoxCalendar = new TableCell(); tableCellDatePickerPersian.Controls.Add(datePickerPersian); tableCellDatePickerPersian.Attributes.Add("data-bind", string.Format("visible: {0}SelectedCalendar() === 'FA'", PropertyName)); tableCellDatePickerGregorian.Controls.Add(datePickerGregorian); tableCellDatePickerGregorian.Attributes.Add("data-bind", string.Format("visible: {0}SelectedCalendar() === 'EN'", PropertyName)); tableCellComboBoxCalendar.Controls.Add(comboBoxCalendar); var selectedModelContainer = RenderHelper.CreateASPxTextBox(); selectedModelContainer.ClientSideEvents.Init = string.Format("function OnInit(s,e){{ function {0}DateTimeViewModel () {{ {0}SelectedCalendar = ko.observable('EN'); }}; var input = s.GetInputElement(); ko.applyBindings(new {0}DateTimeViewModel(),input); ko.applyBindings({{}},jQuery('[id*=dvi{0}]')[0]); }}", PropertyName); var tableCellSelectedModelContainer = new TableCell(); tableCellSelectedModelContainer.Controls.Add(selectedModelContainer); tableCellSelectedModelContainer.Style.Add("display", "none"); row.Cells.Add(tableCellSelectedModelContainer); row.Cells.Add(tableCellComboBoxCalendar); row.Cells.Add(tableCellDatePickerPersian); row.Cells.Add(tableCellDatePickerGregorian); table.Rows.Add(row); table.Style.Add("width", "auto"); table.Style.Add("border-spacing", "1px"); UpdateControlsValue(); return(table); }
private ASPxEdit GetControlForColumn(IModelColumn column, XPBaseObject item) { object value = item.GetMemberValue(column.PropertyName); ASPxEdit c; if (typeof(XPBaseObject).IsAssignableFrom(column.ModelMember.MemberInfo.MemberType)) { c = RenderHelper.CreateASPxComboBox(); var helper = new WebLookupEditorHelper(_application, _objectSpace, column.ModelMember.MemberInfo.MemberTypeInfo, column); ((ASPxComboBox)c).ClientSideEvents.KeyUp = "function(s, e) { if(e.htmlEvent.keyCode == 46){ s.SetSelectedIndex(-1); } }"; ((ASPxComboBox)c).ValueType = column.ModelMember.MemberInfo.MemberTypeInfo.KeyMember.MemberType; ((ASPxComboBox)c).SelectedIndexChanged += DetailItemControlValueChanged; c.Style.Add("min-width", "120px"); c.Width = new Unit(100, UnitType.Percentage); FillEditorValues(value, ((ASPxComboBox)c), helper, item, column.ModelMember); if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxComboBox)c).ClientSideEvents.SelectedIndexChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } } else if (typeof(Enum).IsAssignableFrom(column.ModelMember.MemberInfo.MemberType)) { c = RenderHelper.CreateASPxComboBox(); ((ASPxComboBox)c).ClientSideEvents.KeyUp = "function(s, e) { if(e.htmlEvent.keyCode == 46){ s.SetSelectedIndex(-1); } }"; var descriptor = new EnumDescriptor(column.ModelMember.MemberInfo.MemberType); var source = (Enum.GetValues(column.ModelMember.MemberInfo.MemberType).Cast <object>() .Select(v => new Tuple <object, string>(v, descriptor.GetCaption(v)))).ToList(); c.DataSource = source; ((ASPxComboBox)c).ValueField = "Item1"; ((ASPxComboBox)c).TextField = "Item2"; ((ASPxComboBox)c).ValueType = column.ModelMember.MemberInfo.MemberType; ((ASPxComboBox)c).SelectedIndexChanged += DetailItemControlValueChanged; c.Style.Add("min-width", "120px"); c.Width = new Unit(100, UnitType.Percentage); c.Load += c_Load; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxComboBox)c).ClientSideEvents.SelectedIndexChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } } else { switch (column.ModelMember.MemberInfo.MemberType.ToString()) { case "System.Boolean": case "System.bool": c = RenderHelper.CreateASPxCheckBox(); ((ASPxCheckBox)c).CheckedChanged += DetailItemControlValueChanged; c.Style.Add("max-width", "20px"); if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxCheckBox)c).ClientSideEvents.CheckedChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } break; case "System.String": case "System.string": c = RenderHelper.CreateASPxTextBox(); ((ASPxTextBox)c).MaxLength = 100; if (column.ModelMember.Size > 0) { ((ASPxTextBox)c).MaxLength = column.ModelMember.Size; } ((ASPxTextBox)c).TextChanged += DetailItemControlValueChanged; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxTextBox)c).ClientSideEvents.TextChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } c.Style.Add("min-width", "130px"); break; case "System.Int32": case "System.int": case "System.Int64": case "System.long": c = RenderHelper.CreateASPxSpinEdit(); ((ASPxSpinEdit)c).NumberType = SpinEditNumberType.Integer; ((ASPxSpinEdit)c).DecimalPlaces = 0; c.ValueChanged += DetailItemControlValueChanged; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxSpinEdit)c).ClientSideEvents.NumberChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } c.Style.Add("min-width", "100px"); break; case "System.Double": case "System.double": case "System.Decimal": case "System.decimal": case "System.Nullable`1[System.Decimal]": c = RenderHelper.CreateASPxSpinEdit(); ((ASPxSpinEdit)c).NumberType = SpinEditNumberType.Float; string format = column.ModelMember.DisplayFormat; if (format == "{0:C}") { format = null; } ((ASPxSpinEdit)c).DisplayFormatString = format; if (string.IsNullOrEmpty(format)) { ((ASPxSpinEdit)c).DecimalPlaces = 2; } c.ValueChanged += DetailItemControlValueChanged; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxSpinEdit)c).ClientSideEvents.NumberChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } c.Style.Add("min-width", "100px"); break; case "System.DateTime": c = RenderHelper.CreateASPxDateEdit(); ((ASPxDateEdit)c).DateChanged += DetailItemControlValueChanged; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxDateEdit)c).ClientSideEvents.DateChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } c.Style.Add("min-width", "90px"); break; default: c = RenderHelper.CreateASPxTextBox(); ((ASPxTextBox)c).MaxLength = 100; ((ASPxTextBox)c).TextChanged += DetailItemControlValueChanged; if (column.ModelMember.MemberInfo.FindAttribute <ImmediatePostDataAttribute>() != null) { ((ASPxTextBox)c).ClientSideEvents.TextChanged = "function(s, e) { " + "CallbackPanel" + Model.Id + ".PerformCallback(\"changed_" + column.PropertyName + "_" + item.GetMemberValue( Model.ModelClass.KeyProperty) + "\"); }"; } c.Style.Add("min-width", "130px"); break; } c.Width = new Unit(100, UnitType.Percentage); } SetValueToControl(value, c); _controls.Add(c); OnControlCreated(column.PropertyName, c, item); return(c); }