zoukankan      html  css  js  c++  java
  • datatable把一个LIst的数据放入两个colum防止窜行的做法

     DataColumn objectOne = new DataColumn("objectOne", typeof(object));
                    dt.Columns.Add(objectOne);
    //更改databatle列的类型的方法
    List<string> item = new List<string>();
                item.Add("第一列数据");
                item.Add("第二列数据");
                item.Add("第三列数据");
                item.Add("第四列数据");
                item.Add("第五列数据");
                item.Add("第六列数据");
                item.Add("第七列数据");
                item.Add("第八列数据");
                item.Add("第九列数据");
                DataTable dt = new DataTable();
    
                dt.Columns.Add("名称一");
                dt.Columns.Add("名称二");
                DataRow dr = dt.NewRow() ;
    
                for (int i = 0; i < item.Count; i+=2)
                {
                    //如果这里不每次实例化就会每一次循环的数据覆盖上一次的
                    dr = dt.NewRow();
                    //写到指定的列上
                    dr["名称一"] = item[i];
                    //判断如果是奇数的话,最后一列不赋值
                    if((i+1)<item.Count)
                    {
                        dr["名称二"] = item[i + 1];
                    }
                    dt.Rows.Add(dr);
                }
                //最后绑定到datagridview上成为数据源就OK了
                this.dgvShow.DataSource = dt;

     cells里面放置(for和foreach两种情况)

    int i =0
    foreach (AMDatumCategory datumCategory in this.spellCodeDatumCategoryMap[key])
                                {                                
                                    if (i % 2 == 0)
                                    {
                                        DataRow dr = dt.NewRow();
                                        dr["IdOne"] = datumCategory.DatumCategoryId;
                                        dr["名称一"] = datumCategory.Name;
                                        dt.Rows.Add(dr);
                                        
                                    }
                                    else
                                    {
                                        dt.Rows[(i - 1)/2]["IdTow"] = datumCategory.DatumCategoryId;
                                        dt.Rows[(i - 1)/2]["名称二"] = datumCategory.Name;
                                    }
                                    
                                    i++;
                                }

     当i=3的时候,实际上要往dt的第2行添加数据,也就是dt.Rows[1]

    dt的最后一行的行号,是当前i-1除以2 

    dt = new DataTable(); dt.Columns.Add("IdOne"); dt.Columns.Add("名称一"); dt.Columns.Add(" "); dt.Columns.Add("IdTow"); dt.Columns.Add("名称二"); for (int i = 0; i < lstCategory.Count; i++) { DataRow dr = dt.NewRow(); dr["IdOne"] = lstCategory[i].DatumCategoryId; dr["名称一"] = lstCategory[i].Name; i++; if (i < lstCategory.Count) { dr["IdTow"] = lstCategory[i].DatumCategoryId; dr["名称二"] = lstCategory[i].Name; } dt.Rows.Add(dr); }
     for (int i = 0; i < this.dgvCategoryDatum.Columns.Count; i++)
                    {
                        this.dgvCategoryDatum.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
                    }
    //禁止对dgvCategoryDatum的列添加排序按钮
     
  • 相关阅读:
    归并排序——计算逆序数
    二分图 (匈牙利算法)
    拓扑排序
    读入外挂——秒杀scanf
    最小生成树(kruskal+并查集)
    最短路算法(dijkstra,bellman_ford,floyd)
    【Python】【Module】re
    【Python】【Module】os
    【Python】【Module】random
    【Python】【Module】time
  • 原文地址:https://www.cnblogs.com/llcdbk/p/4464011.html
Copyright © 2011-2022 走看看