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
//}
}