数据网格视图 - 绑定列到列表
问题描述:
我在c#中的项目包含dataGridView,并且我有一个包含数据的对象。数据网格视图 - 绑定列到列表
public class Data
{
public List<string> list {get;set;}
}
数据在程序启动时被初始化,列表的长度可以改变。 我想要绑定gridView的对象,当gridView显示gridview中的每一列都必须列出像这样的数据对象:
如果列表计数= 3,比我想GridView包含3列 - column0绑定到列表[ 0],column01绑定到列表[1],依此类推。
我认为我需要绑定表格加载时的gridView,但我怎么能在我的代码中做到这一点?
答
<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="true" >
</asp:GridView>
private static Random _rnd = new Random(DateTime.Now.Millisecond);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var columns = _rnd.Next(3, 10);
var data = new { list = Enumerable.Range(1, columns).ToList() };
GridView1.DataSource = data.list.Pivot();
GridView1.DataBind();
}
}
public static class Extensions
{
public static DataTable Pivot<T>(this IEnumerable<T> list)
{
if (list == null)
throw new ArgumentNullException("list");
DataTable result = new DataTable();
for (int index = 0; index < list.Count(); index++)
{
DataColumn column = new DataColumn(string.Format("Column{0}", index), typeof(T));
result.Columns.Add(column);
}
var dataRow = result.NewRow().ItemArray = list.Select(item => (object)item).ToArray();
result.Rows.Add(dataRow);
return result;
}
}