private void CreateCustomParameterEditors(CustomizeParameterEditorsEventArgs e)
        {
            ITypeInfo typeInfo = XafTypesInfo.Instance.FindTypeInfo(e.Parameter.Type);

            if (typeInfo != null && typeInfo.IsDomainComponent)
            {
                ASPxPropertyEditor       editor = (ASPxPropertyEditor)Application.EditorFactory.CreateDetailViewEditor(false, GetParameterViewItem(e.Parameter.Name, e.Parameter.Type), typeof(ParametersObject), Application, objectSpace);
                ASPxLookupPropertyEditor lookupPropertyEditor = editor as ASPxLookupPropertyEditor;
                if (lookupPropertyEditor != null)
                {
                    lookupPropertyEditor.WebLookupEditorHelper.EditorMode = LookupEditorMode.AllItems;
                    lookupPropertyEditor.WebLookupEditorHelper.SmallCollectionItemCount = int.MaxValue;
                }
                editor.ViewEditMode = ViewEditMode.Edit;
                editor.CreateControl();
                editor.CurrentObject = new object();
                editor.ReadValue();
                if (lookupPropertyEditor != null)
                {
                    e.Editor = lookupPropertyEditor.DropDownEdit.DropDown;
                    new PropertyEditorDisposeManager().Attach(lookupPropertyEditor, lookupPropertyEditor.DropDownEdit.DropDown);
                    e.Editor.ID = editor.Id + "_" + e.Editor.ID;
                    lookupPropertyEditor.SetValueToControl(e.Parameter.Value);
                    e.ShouldSetParameterValue = false;
                }
                else
                {
                    e.Editor = editor.Editor as ASPxEdit;
                    new PropertyEditorDisposeManager().Attach(editor, editor.Editor);
                }
            }
        }
示例#2
0
 public static void RemoveFirstLookupElement(ASPxLookupPropertyEditor lookupPropertyEditor)
 {
     if (lookupPropertyEditor != null)
     {
         lookupPropertyEditor.ControlCreated += (sender, args) =>
         {
             var editor = (ASPxLookupPropertyEditor)sender;
             if (editor.Editor != null && editor.Editor.Controls.Count > 0)
             {
                 var ddeEditor = editor.Editor.Controls[0] as ASPxLookupDropDownEdit;
                 if (ddeEditor != null)
                 {
                     ddeEditor.PreRender += (o, eventArgs) =>
                     {
                         var dd = ddeEditor.DropDown;
                         if (dd != null && dd.Items != null && dd.Items.Count > 0)
                         {
                             dd.Items.RemoveAt(0);
                         }
                     };
                 }
             }
         };
     }
 }