示例#1
0
        private Control CreateEditorBody()
        {
            calendarFrom    = RenderHelper.CreateASPxDateEdit();
            calendarFrom.ID = "EdF";
            calendarTo      = RenderHelper.CreateASPxDateEdit();
            calendarTo.ID   = "EdT";
            Table     table  = RenderHelper.CreateTable();
            TableRow  trow   = new TableRow();
            TableCell tcell1 = new TableCell();

            tcell1.Controls.Add(calendarFrom);
            trow.Cells.Add(tcell1);
            TableCell tcell2 = new TableCell();

            tcell2.Controls.Add(calendarTo);
            trow.Cells.Add(tcell2);
            table.Rows.Add(trow);
            return(table);
        }
示例#2
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);
        }