private void InitEdit()
        {
            Edit = new XafBootstrapDropdownEdit();
            Edit.Items.List.Clear();
            if (typeof(Enum).IsAssignableFrom(MemberInfo.MemberType))
            {
                foreach (var item in Enum.GetValues(MemberInfo.MemberType))
                {
                    int    value        = (int)item;
                    string displayValue = GetXafDisplayName((Enum)item);
                    Edit.Items.Add(new XafBootstrapDropdownItem()
                    {
                        Text = displayValue, Value = value
                    });
                }
            }

            Edit.PropertyName = PropertyName;
        }
        private void InitEdit()
        {
            Edit = new XafBootstrapDropdownEdit();
            Edit.Items.ItemImageHeight = 100;
            Edit.Items.ItemImageWidth  = 100;

            var path = HttpContext.Current.Server.MapPath("bootstrap_themes");

            if (Directory.Exists(path))
            {
                foreach (var item in Directory.GetDirectories(path).Select(f => new DirectoryInfo(f)))
                {
                    var editItem = Edit.Items.Add();
                    editItem.Text  = item.Name;
                    editItem.Value = item.Name;
                    if (File.Exists(item.FullName + "\\preview.jpg"))
                    {
                        editItem.ImageUrl = "bootstrap_themes\\" + item.Name + "\\preview.jpg";
                    }
                }
            }
        }
示例#3
0
        private void InitEdit()
        {
            var memType = MemberInfo.MemberTypeInfo;

            if (memType.Type == typeof(SecuritySystemUser))
            {
                memType = XafTypesInfo.Instance.FindTypeInfo(SecuritySystem.UserType);
            }

            CollectionOS = ObjectSpace.CreateNestedObjectSpace();

            Helper = new LookupEditorHelper(Application, CollectionOS, memType, Model);

            var bootstrapLookup = MemberInfo.FindAttribute <BootstrapLookupAttribute>();

            Boolean IsAuto = Helper.EditorMode == LookupEditorMode.Auto;

            if (Helper.EditorMode == LookupEditorMode.Auto)
            {
                Helper.EditorMode = LookupEditorMode.AllItemsWithSearch;
            }

            IsSelector = Helper.EditorMode == LookupEditorMode.AllItems;

            if (bootstrapLookup != null)
            {
                switch (bootstrapLookup.Kind)
                {
                case BootstapLookupKind.Auto:
                    IsSelector        = false;
                    Helper.EditorMode = LookupEditorMode.Auto;
                    break;

                case BootstapLookupKind.DropDown:
                    IsSelector        = false;
                    Helper.EditorMode = LookupEditorMode.AllItemsWithSearch;
                    break;

                case BootstapLookupKind.Selector:
                    IsSelector        = true;
                    Helper.EditorMode = LookupEditorMode.AllItemsWithSearch;
                    break;
                }
            }

            if (!IsSelector)
            {
                cs = Helper.CreateCollectionSource(Helper.ObjectSpace.GetObject(CurrentObject));
                if (IsAuto || (Helper.EditorMode == LookupEditorMode.AllItemsWithSearch && bootstrapLookup == null))
                {
                    IsSelector = cs != null && cs.List != null && (cs.List.Count == 0 || cs.List.Count > 20 || typeof(ITreeNode).IsAssignableFrom(MemberInfo.MemberType));
                }
            }

            if (cs != null && cs.List != null)
            {
                foreach (var item in NewObjects)
                {
                    cs.List.Add(cs.ObjectSpace.GetObject(item));
                }
            }

            String displayFormat = String.Concat(DisplayFormat);

            if (displayFormat == "")
            {
                try
                {
                    ObjectCaptionFormatAttribute aAttr = (MemberInfo.MemberTypeInfo.FindAttribute <ObjectCaptionFormatAttribute>());
                    if (aAttr != null)
                    {
                        displayFormat = aAttr.FormatString;
                    }
                    else
                    {
                        var lookupProperty = String.Concat(Model.GetValue <String>("LookupProperty"));
                        if (lookupProperty != "")
                        {
                            displayFormat = String.Format("{{0:{0}}}", lookupProperty);
                        }
                    }
                }
                catch
                {
                }
            }
            if (displayFormat == "")
            {
                displayFormat = "{0}";
            }

            var App = (WebApplication.Instance as XafApplication);

            if (IsSelector)
            {
                DataSelector               = new XafBootstrapDataSelectorEdit(this, Application, ObjectSpace, Helper);
                DataSelector.Caption       = Model.Caption;
                DataSelector.PropertyName  = PropertyName;
                DataSelector.OnClickScript = GetImmediatePostDataScript();
                DataSelector.ListView      = (IModelListView)App.Model.Views[App.FindLookupListViewId(memType.Type)];
                DataSelector.DisplayFormat = displayFormat;
                DataSelector.OnCallback   += DataSelector_OnCallback;
                DataSelector.OnOk         += DataSelector_OnOk;
                DataSelector.OnCancel     += DataSelector_OnCancel;
            }
            else
            {
                DropDown = new XafBootstrapDropdownEdit();
                DropDown.OnClickScript = GetImmediatePostDataScript();

                if (cs != null && cs.List != null)
                {
                    var list          = cs.List.OfType <object>().ToList();
                    var modelListView = (IModelListView)App.Model.Views[App.FindLookupListViewId(memType.Type)];
                    if (modelListView != null && modelListView.Sorting.Count > 0)
                    {
                        DropDown.SortByText = false;
                        list = Helpers.SortListByViewSorting(modelListView, list).ToList();
                    }
                    foreach (var obj in list)
                    {
                        AddObjToDropDown(obj);
                    }
                }
            }

            CreateButtons();
        }
        private void InitEdit()
        {
            var Helper = new LookupEditorHelper(Application, ObjectSpace.CreateNestedObjectSpace(), MemberInfo.MemberTypeInfo, Model);

            IsSelector = Helper.EditorMode == LookupEditorMode.Search;

            CollectionSourceBase cs = null;

            if (!IsSelector)
            {
                cs = Helper.CreateCollectionSource(Helper.ObjectSpace.GetObject(CurrentObject));
                if (Helper.EditorMode == LookupEditorMode.Auto || Helper.EditorMode == LookupEditorMode.AllItemsWithSearch)
                {
                    IsSelector = cs != null && cs.List.Count > 20;
                }
            }

            String displayFormat = String.Concat(DisplayFormat);

            if (displayFormat == "")
            {
                try
                {
                    ObjectCaptionFormatAttribute aAttr = (MemberInfo.MemberTypeInfo.FindAttribute <ObjectCaptionFormatAttribute>());
                    if (aAttr != null)
                    {
                        displayFormat = aAttr.FormatString;
                    }
                    else
                    {
                        var lookupProperty = String.Concat(Model.GetValue <String>("LookupProperty"));
                        if (lookupProperty != "")
                        {
                            displayFormat = String.Format("{{0:{0}}}", lookupProperty);
                        }
                    }
                }
                catch
                {
                }
            }
            if (displayFormat == "")
            {
                displayFormat = "{0}";
            }

            var App = (WebApplication.Instance as XafApplication);

            if (IsSelector)
            {
                DataSelector               = new XafBootstrapDataSelectorEdit(this, Application, ObjectSpace, Helper);
                DataSelector.Caption       = Model.Caption;
                DataSelector.PropertyName  = PropertyName;
                DataSelector.OnClickScript = GetImmediatePostDataScript();
                DataSelector.ListView      = (IModelListView)App.Model.Views[App.FindLookupListViewId(MemberInfo.MemberType)];
                DataSelector.DisplayFormat = displayFormat;
            }
            else
            {
                DropDown = new XafBootstrapDropdownEdit();
                DropDown.OnClickScript = GetImmediatePostDataScript();
                var listView = (IModelListView)App.Model.Views[App.FindLookupListViewId(MemberInfo.MemberType)];
                if (cs != null)
                {
                    foreach (var obj in cs.List)
                    {
                        var item = DropDown.Items.Add();
                        var cols = listView.Columns.Where(f => f.Index == null || f.Index > -1).OrderBy(f => f.Index);
                        if (cols.Count() > 1)
                        {
                            var builder = new List <String>();
                            foreach (var col in cols)
                            {
                                builder.Add(String.Format(new ObjectFormatter(), "{0:" + col.GetValue <String>("FieldName") + "}", obj));
                            }
                            builder   = builder.Where(f => String.Concat(f) != "").ToList();
                            item.Text = builder.First();
                            item.Hint = String.Join("<br>", builder.Skip(1).Take(builder.Count - 1));
                        }
                        else
                        {
                            item.Text = String.Format(new ObjectFormatter(), String.Concat(displayFormat) == "" ? "{0}" : displayFormat, obj);
                        }
                        item.Value = ObjectSpace.GetObject(obj);
                    }
                }
            }
        }