using System; using System.Collections.Generic; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Collections; using System.Reflection; namespace Ant.Service.Utilities { //public class GridViewHelper //{ // #region 私有方法 // /// // /// 截取内容长度 // /// // /// 原字符串 // /// 截取长度 // /// 截取后字符串 // private static string GetStrPartly(string o_Str, int len) // { // if (len == 0) // { // return o_Str; // } // else // { // if (o_Str.Length > len) // { // return o_Str.Substring(0, len) + ".."; // } // else // { // return o_Str; // } // } // } // /// // /// 获取单元格内容 // /// // /// TableCell // /// 内容 // private static string GetCellText(TableCell cell) // { // string text = cell.Text; // if (!string.IsNullOrEmpty(text)) // { // return text; // } // foreach (System.Web.UI.Control control in cell.Controls) // { // if (control != null && control is IButtonControl) // { // IButtonControl btn = control as IButtonControl; // text = btn.Text.Replace("\r\n", "").Trim(); // break; // } // if (control != null && control is ITextControl) // { // LiteralControl lc = control as LiteralControl; // if (lc != null) // { // continue; // } // ITextControl l = control as ITextControl; // text = l.Text.Replace("\r\n", "").Trim(); // break; // } // } // return text; // } // /// // /// 设置单元格内容 // /// // /// TableCell // /// 最大长度 // private static void SetCellText(TableCell cell, int maxLen) // { // string text = cell.Text; // if (!string.IsNullOrEmpty(text)) // { // cell.Text = GetStrPartly(text, maxLen); // } // foreach (System.Web.UI.Control control in cell.Controls) // { // if (control != null && control is IButtonControl) // { // IButtonControl btn = control as IButtonControl; // text = btn.Text.Replace("\r\n", "").Trim(); // btn.Text = GetStrPartly(text, maxLen); // break; // } // if (control != null && control is ITextControl) // { // LiteralControl lc = control as LiteralControl; // if (lc != null) // { // continue; // } // ITextControl l = control as ITextControl; // text = l.Text.Replace("\r\n", "").Trim(); // if (l is DataBoundLiteralControl) // { // cell.Text = GetStrPartly(text, maxLen); // break; // } // else // { // l.Text = GetStrPartly(text, maxLen); // break; // } // } // } // } // #endregion // #region 公有方法 // /// // /// 从GridView的数据生成DataTable // /// // /// GridView对象 // public static DataTable GridView2DataTable(GridView gv) // { // DataTable table = new DataTable(); // int rowIndex = 0; // List cols = new List(); // if (!gv.ShowHeader && gv.Columns.Count == 0) // { // return table; // } // GridViewRow headerRow = gv.HeaderRow; // int columnCount = headerRow.Cells.Count; // for (int i = 0; i < columnCount; i++) // { // string text = GetCellText(headerRow.Cells[i]); // cols.Add(text); // } // foreach (GridViewRow r in gv.Rows) // { // if (r.RowType == DataControlRowType.DataRow) // { // DataRow row = table.NewRow(); // int j = 0; // for (int i = 0; i < columnCount; i++) // { // string text = GetCellText(r.Cells[i]); // if (!String.IsNullOrEmpty(text)) // { // if (rowIndex == 0) // { // string columnName = cols[i]; // if (String.IsNullOrEmpty(columnName)) // { // continue; // } // if (table.Columns.Contains(columnName)) // { // continue; // } // DataColumn dc = table.Columns.Add(); // dc.ColumnName = columnName; // dc.DataType = typeof(string); // } // row[j] = text; // j++; // } // } // rowIndex++; // table.Rows.Add(row); // } // } // return table; // } // /// // /// 将集合类转换成DataTable // /// // /// 集合 // public static DataTable ToDataTable(IList list) // { // DataTable result = new DataTable(); // if (list.Count > 0) // { // PropertyInfo[] propertys = list[0].GetType().GetProperties(); // foreach (PropertyInfo pi in propertys) // { // result.Columns.Add(pi.Name, pi.PropertyType); // } // for (int i = 0; i < list.Count; i++) // { // ArrayList tempList = new ArrayList(); // foreach (PropertyInfo pi in propertys) // { // object obj = pi.GetValue(list[i], null); // tempList.Add(obj); // } // object[] array = tempList.ToArray(); // result.LoadDataRow(array, true); // } // } // return result; // } // /// // /// 将泛型集合类转换成DataTable // /// // /// 集合项类型 // /// 集合 // /// 需要返回的列的列名 // /// 数据集(表) // public static DataTable ToDataTable(IList list, params string[] propertyName) // { // List propertyNameList = new List(); // if (propertyName != null) propertyNameList.AddRange(propertyName); // DataTable result = new DataTable(); // if (list.Count > 0) // { // PropertyInfo[] propertys = list[0].GetType().GetProperties(); // foreach (PropertyInfo pi in propertys) // { // if (propertyNameList.Count == 0) // { // result.Columns.Add(pi.Name, pi.PropertyType); // } // else // { // if (propertyNameList.Contains(pi.Name)) result.Columns.Add(pi.Name, pi.PropertyType); // } // } // for (int i = 0; i < list.Count; i++) // { // ArrayList tempList = new ArrayList(); // foreach (PropertyInfo pi in propertys) // { // if (propertyNameList.Count == 0) // { // object obj = pi.GetValue(list[i], null); // tempList.Add(obj); // } // else // { // if (propertyNameList.Contains(pi.Name)) // { // object obj = pi.GetValue(list[i], null); // tempList.Add(obj); // } // } // } // object[] array = tempList.ToArray(); // result.LoadDataRow(array, true); // } // } // return result; // } // #endregion //} }