/// <summary> /// returns a List object of SearchColumnConfig type /// </summary> /// <param name="type"></param> /// <param name="columns"></param> /// <returns></returns> public static List <SearchColumnConfig> GetColumnConfig(Type type, List <SearchColumnConfig> columns) { PropertyDescriptorCollection lstPropertie = TypeDescriptor.GetProperties(type); List <SearchColumnConfig> columnConfig = new List <SearchColumnConfig>(); string caption = string.Empty; foreach (PropertyDescriptor objPropertie in lstPropertie) { SearchColumnConfig item = columns.Find(p => p.ColumnName == objPropertie.Name); if (item != null) { columnConfig.Add(new SearchColumnConfig { ColumnName = objPropertie.Name, Caption = item.Caption, DisplayPosition = item.DisplayPosition }); } else { columnConfig.Add(new SearchColumnConfig { ColumnName = objPropertie.Name, Hiden = true }); } } return(columnConfig); }
private String GetGridColumn(IEnumerable retrievedData) { try { String HideColumns = HttpContext.Current.Request.QueryString["HideColumns"]; if (HideColumns.IsNullOrEmpty()) { HideColumns = String.Empty; } String[] arrayColumn = HideColumns.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); Type actualType = retrievedData.GetType(); if (actualType == typeof(Object)) { throw new System.ArgumentException("Object is not a CustomList<T> or List<T> instance.", "Obj"); } Type objectType = actualType.GetGenericArguments()[0]; String columnsCaption = "VID,"; StringBuilder tempCols = new StringBuilder(); StringBuilder columnsString = new StringBuilder(); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(objectType); List <ASL.Web.Framework.SearchColumnConfig> congigList = (List <ASL.Web.Framework.SearchColumnConfig>)HttpContext.Current.Session[StaticInfo.SearchColumnConfigSessionVarName]; String caption = String.Empty; tempCols.Append("{ 'name': 'VID', 'key': true, 'hidden': true, 'index': 'VID' }@ "); foreach (PropertyDescriptor propDes in properties) { caption = propDes.DisplayName; if (congigList.IsNotNull() && congigList.Count.IsNotZero()) { ASL.Web.Framework.SearchColumnConfig config = congigList.Find(item => item.ColumnName == propDes.Name); if (config.IsNotNull()) { if (config.Hiden) { continue; } caption = config.Caption; } } if (arrayColumn.Contains(propDes.Name, new StringEqualityComparer())) { continue; } if (propDes.IsBrowsable.IsFalse()) { continue; } if (propDes.PropertyType == typeof(DateTime)) { tempCols.Append("{ 'name': '" + propDes.Name + "', 'index': '" + propDes.Name + "', 'width': 50, searchoptions: {dataInit:datePick, sopt: ['eq','ne','lt','le','gt','ge','in','ni'] }}@ "); } else { tempCols.Append("{ 'name': '" + propDes.Name + "', 'index': '" + propDes.Name + "', 'width': 50, searchoptions: { sopt: ['cn','bw','ew','eq','ne','lt','le','gt','ge','bn','in','ni','en','nc'] }}@ "); } columnsCaption += String.Format("{0},", caption); } columnsCaption += "]"; columnsCaption = columnsCaption.Replace(",]", " | "); tempCols.Append("]"); columnsString.Append(columnsCaption); columnsString.Append(tempCols.ToString().Replace("@ ]", "")); //Dispose the variable from session HttpContext.Current.Session[StaticInfo.SearchColumnConfigSessionVarName] = null; HttpContext.Current.Session.Remove(StaticInfo.SearchColumnConfigSessionVarName); return(columnsString.ToString()); } catch (Exception ex) { throw (ex); } }