Exemple #1
0
        protected override WebControl CreateEditModeControlCore()
        {
            ASPxTextBox textBox = RenderHelper.CreateASPxTextBox();

            textBox.TextChanged += ((sender, e) => WriteValue());
            return(textBox);
        }
Exemple #2
0
 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());
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }