【问题标题】:Data Grid View -- binding columns to list数据网格视图——将列绑定到列表
【发布时间】:2010-08-14 14:20:27
【问题描述】:

我在 c# 中的项目包含 dataGridView,并且我有一个包含数据的对象。

public class Data
{
    public List<string> list {get;set;}

}

数据在程序启动时初始化,列表的长度可以改变。 我想将 gridView 绑定到当 gridView 显示 gridview 中的每一列时绑定到数据对象中的列表的对象,如下所示:

如果 list count = 3,我希望 gridView 包含 3 列 - column0 绑定到 list[0],column01 绑定到 list[1],等等。

我认为我需要在表单加载时绑定 gridView,但我如何在我的代码中做到这一点?

【问题讨论】:

    标签: c# .net data-binding datagridview


    【解决方案1】:
    <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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多