/// <summary> /// /// </summary> /// <param name="info"></param> /// <param name="asView"></param> /// <returns></returns> public static string GetNameValueMappingName(GridColumnInfo info, bool asView) { string initParam = asView ? info.CellViewerManagerParam : info.CellEditorManagerParam; if (string.IsNullOrEmpty(initParam)) { return(null); } //string filter = asView ? string.Empty : info.CellEditorManagerParamFilter; string nvName; if (initParam.StartsWith(GridColumnInfoHelper.StartWithBigEnum, StringComparison.Ordinal)) { Type type = GridColumnInfoHelper.CreateTypeFromEnumInitParam(GridColumnInfoHelper.CreateType(info), initParam); System.Diagnostics.Debug.Assert(type != null, info.GridColumnName + "'s ControlInitParam should be valid"); //ControlDataLoad.InitDataControl(control, type, false, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter)); nvName = NameValueMappingCollection.Instance.Add(type, false); } else if (initParam.StartsWith(GridColumnInfoHelper.StartWithLittleEnum, StringComparison.Ordinal)) { Type type = GridColumnInfoHelper.CreateTypeFromEnumInitParam(GridColumnInfoHelper.CreateType(info), initParam); System.Diagnostics.Debug.Assert(type != null, info.GridColumnName + "'s ControlInitParam should be valid"); //ControlDataLoad.InitDataControl(control, type, true, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter)); nvName = NameValueMappingCollection.Instance.Add(type, true); } else { nvName = initParam; //ControlDataLoad.InitDataControl(control, info.CellViewerManagerParam, // info.CellEditorManagerParam, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter)); } return(nvName); }
/// <summary> /// /// </summary> /// <param name="column"></param> /// <param name="info"></param> public static void CreateCellViewerManager(Xceed.Grid.Column column, GridColumnInfo info, IDisplayManager dm) { try { Xceed.Grid.Viewers.CellViewerManager viewer = ControlFactory.CreateCellViewerManager(dm.Name, info.CellViewerManager, info.CellViewerManagerParam, GridColumnInfoHelper.CreateType(info)); if (viewer != null) { column.CellViewerManager = viewer; System.Collections.IComparer comp = ControlFactory.CreateColumnDataComparer( info.CellViewerManager, info.CellViewerManagerParam, GridColumnInfoHelper.CreateType(info)); if (comp != null) { column.DataComparer = comp; } } } catch (Exception ex) { throw new ArgumentException("GridColumnInfo of " + info.Name + " is Invalid when CreateCellViewerManager!", ex); } }
/// <summary> /// /// </summary> /// <param name="column"></param> /// <param name="info"></param> public static void CreateCellEditorManager(Xceed.Grid.Column column, GridColumnInfo info, IDisplayManager dm) { try { Xceed.Grid.Editors.CellEditorManager editor = ControlFactory.CreateCellEditorManager(dm.Name, info.CellEditorManager, info.CellEditorManagerParam, GridColumnInfoHelper.CreateType(info), (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter), info.CellViewerManagerParam); if (editor != null) { column.CellEditorManager = editor; } } catch (Exception ex) { throw new ArgumentException("GridColumnInfo of " + info.Name + " is Invalid when CreateCellEditorManager!", ex); } }
/// <summary> /// /// </summary> /// <param name="entity"></param> /// <param name="gridName"></param> /// <returns></returns> public Dictionary <string, object> Process(object entity, string gridName) { Dictionary <string, object> r = new Dictionary <string, object>(); // grid if (!Authority.AuthorizeByRule(ADInfoBll.Instance.GetGridInfo(gridName).Visible)) { return(r); } // row if (!Permission.AuthorizeByRule(ADInfoBll.Instance.GetGridRowInfo(gridName).Visible, entity)) { return(r); } // column foreach (GridColumnInfo info in ADInfoBll.Instance.GetGridColumnInfos(gridName)) { object v = null; if ((m_useColumnVisible && !Authority.AuthorizeByRule(info.ColumnVisible)) || (!m_useColumnVisible && !Authority.AuthorizeByRule(info.DataControlVisible))) { continue; } else { if (info.GridColumnType != GridColumnType.Normal && info.GridColumnType != GridColumnType.ExpressionColumn) { continue; } if (string.IsNullOrEmpty(info.PropertyName)) { v = null; } else if (info.GridColumnType == GridColumnType.Normal) { v = EntityScript.GetPropertyValue(entity, info.Navigator, info.PropertyName); } else if (info.GridColumnType == GridColumnType.ExpressionColumn) { if (info.PropertyName.Contains("%")) { v = EntityScript.CalculateExpression(info.PropertyName, entity); } else { v = ProcessInfoHelper.TryExecutePython(info.PropertyName, new Dictionary <string, object>() { { "entity", entity } }); } } else { continue; } } if (v == System.DBNull.Value) { v = null; } if (v == null) { r[info.GridColumnName] = null; continue; } string vs = null; if (GridColumnInfoHelper.CreateType(info).IsEnum) { vs = v.ToString(); } switch (info.CellViewerManager) { case "Combo": case "MultiCombo": vs = GetViewerText(v, info); break; case "Object": vs = EntityHelper.ReplaceEntity(info.CellViewerManagerParam, v, null); break; case "Numeric": case "Integer": case "Long": case "Currency": vs = Convert.ToDouble(v).ToString(GetFormatString(info)); break; case "Date": case "DateTime": vs = Convert.ToDateTime(v).ToString(GetFormatString(info)); break; default: vs = v.ToString(); break; } r[info.GridColumnName] = vs; //// cell //foreach (GridCellInfo info in GridSettingInfoCollection.Instance[gridName].GridCellInfos) //{ //} } return(r); }