private static void SetServiceLookupParams(EditorTypeAttribute editorTypeAttr, Dictionary <string, object> editorParams) { if (!(editorTypeAttr is ServiceLookupEditorAttribute sle) || sle.ItemType == null) { return; } if (!editorParams.ContainsKey("service")) { editorParams["service"] = ServiceLookupEditorAttribute.AutoServiceFor(sle.ItemType); } if (sle.ItemType.IsSubclassOf(typeof(Row)) && !sle.ItemType.IsAbstract && (!editorParams.ContainsKey("idField") || !editorParams.ContainsKey("textField") || (!editorParams.ContainsKey("includeColumns") && !editorParams.ContainsKey("columnSelection")))) { try { var rowInstance = Activator.CreateInstance(sle.ItemType) as Row; if (rowInstance is IIdRow idRow && !editorParams.ContainsKey("idField")) { var idField = ((Field)idRow.IdField); editorParams["idField"] = idField.PropertyName ?? idField.Name; } if (!editorParams.ContainsKey("textField")) { var nameField = RowExtensions.GetNameField(rowInstance, false); if (!ReferenceEquals(nameField, null)) { editorParams["textField"] = nameField.PropertyName ?? nameField.Name; } } if (!editorParams.ContainsKey("includeColumns") && !editorParams.ContainsKey("columnSelection")) { editorParams["includeColumns"] = rowInstance.GetFields() .Where(x => x.GetAttribute <LookupIncludeAttribute>() != null) .Select(x => x.PropertyName ?? x.Name) .ToArray(); } } catch { } } }
public ReportListGridBuilder(HtmlHelper htmlHelper) { _helper = htmlHelper; _modelType = typeof(T); _editor = _modelType.GetCustomAttribute <EditorTypeAttribute>(); var factory = new WidgetFactory(htmlHelper); _builder = factory.Grid <T>(); // Render our actual grid CreateGrid(); }