private void InitializeColumnList() { ColumnList = new List <ColumnHeadData>(); var rootElement = Definition.Element("Table"); if (null == rootElement) { throw new Exception("Definition doesn't contains the Table element"); } var firstRow = DataTable.Rows[0]; var columnDefinitionElements = rootElement.Elements(); var enumerator = columnDefinitionElements.GetEnumerator(); while (enumerator.MoveNext()) { var element = enumerator.Current; var columnHeadData = new ColumnHeadData { ExcelID = element.Attribute("ExcelID").Value, TxtColumnText = element.Attribute("TxtColumnText").Value, TxtTextPosition = int.Parse(element.Attribute("TxtTextPosition").Value), ColumnPosition = Array.IndexOf(firstRow.ItemArray, element.Attribute("ExcelID").Value.ToString()) }; bool groupKey = false; if (null != element.Attribute("GroupKey")) { bool.TryParse(element.Attribute("GroupKey").Value, out groupKey); } columnHeadData.GroupKey = groupKey; ColumnList.Add(columnHeadData); var cellFormatAttribute = element.Attribute("CellFormat"); if (null != cellFormatAttribute && !string.IsNullOrEmpty(cellFormatAttribute.Value)) { columnHeadData.CellFormat = cellFormatAttribute.Value; } columnHeadData.CustomAttributes = new Dictionary <string, string>(); var customAttributes = element.Attributes().Where(attr => !attr.Name.LocalName.Equals("ExcelID") && !attr.Name.LocalName.Equals("TxtColumnText") && !attr.Name.LocalName.Equals("TxtTextPosition") && !attr.Name.LocalName.Equals("GroupKey") && !attr.Name.LocalName.Equals("CellFormat")); foreach (var customAttr in customAttributes) { columnHeadData.CustomAttributes.Add(customAttr.Name.LocalName, customAttr.Value.ToString()); } IdentifyOrderableColumn(element, columnHeadData); } ColumnList = ColumnList.OrderBy(c => c.TxtTextPosition).ToList(); }
protected string ApplyFormatToValue(ColumnHeadData columnHeadData, string cellValue) { var cellFormat = columnHeadData.CellFormat; if (string.IsNullOrEmpty(cellFormat)) { return(cellValue); } cellFormattersToValueDictionary.TryGetValue(cellFormat, out ICellValueFormatter cellFormatter); if (null == cellFormatter) { return(cellValue); } return(cellFormatter.ApplyFormatToValue(cellValue)); }
private void IdentifyOrderableColumn(XElement column, ColumnHeadData columnHeadData) { if (null != orderableColumnHeadData) { return; } var orderableAttribute = column.Attribute("Orderable"); if (null != orderableAttribute && !string.IsNullOrEmpty(orderableAttribute.Value)) { columnHeadData.Orderable = new OrderableAttribute { Type = orderableAttribute.Value }; orderableColumnHeadData = columnHeadData; } }
protected void IdentifyOrderableColumn() { orderableColumnHeadData = columnList.FirstOrDefault(c => null != c.Orderable); }