Csharp: Listview convert Datatable and ListView.Group count

/// <summary>
        /// 計算ListView各類子項ListViewGroup的數量
        /// </summary>
        /// <returns></returns>
        private DataTable getNumber(ListView listview)
        {
            ArrayList alist = new ArrayList();
            DataTable dt = new DataTable();
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("number", typeof(int));
            //獲取各字段名稱
            for (int i = 0; i < lsvData.Columns.Count; i++)
            {
                alist.Add(lsvData.Columns[i].Text);
            }

            foreach (ListViewGroup group in listview.Groups)
            {
                string b = group.Header;
                int c = 0;
                foreach (ListViewItem itemRow in group.Items)
                {

                    for (int i = 0; i < itemRow.SubItems.Count; i++)
                    {

                        string s = itemRow.SubItems[i].Text;
                        if (s == b)
                        {
                            c++;

                        }
                        //getlist = ListViewGroupConvertDatat(lsvData, group);

                    }

                }
                getlist = ListViewGroupConvertDatat(lsvData, group);
                //dt.Rows.Add(group.Header, c);
                dt.Rows.Add(group.Header, getlist.Rows.Count);
                group.Header = group.Header + " 共有(" + getlist.Rows.Count.ToString() + ")條記錄";
                //for (int i = 0; i < alist.Count; i++)
                //{
                //    string s = alist[i].ToString();
                //    if (s == b)
                //    {
                //        getlist = ListViewGroupConvertDatat(lsvData, group);
                //        dt.Rows.Add(group.Header, getlist.Rows.Count);
                //    }
                //}

            }
            return dt;
        }
        /// <summary>
        /// ListView Convert DataTabe
        /// </summary>
        /// <param name="lstview"></param>
        /// <returns></returns>
        private DataTable ListViewConvertDataTabe(ListView lstview)
        {
            DataTable dt = new DataTable();
            //獲取各字段名稱
            for (int i = 0; i < lstview.Columns.Count; i++)
            {
                //this.groupBox.Items.Add(lstview.Columns[i].Text);
                dt.Columns.Add(lstview.Columns[i].Text, typeof(string));
            }
            //for (int i = 0; i < lstview.Items.Count; i++)
            //{
            //    dt.Rows.Add(lstview.Items[i].SubItems[0].Text, lstview.Items[i].SubItems[1].Text, lstview.Items[i].SubItems[2].Text, lstview.Items[i].SubItems[3].Text, lstview.Items[i].SubItems[4].Text);
            //} //Which Subitems you want to add in the listview
            //var listView1 = new ListView();
            //DataTable table = new DataTable();
            
            foreach (ListViewItem item in lstview.Items)
            {
                DataRow dtRow = dt.NewRow();
                int c = 0;                
                foreach (ListViewItem.ListViewSubItem it in item.SubItems)
                {
                    dtRow[c] = it.Text;
                    c++;
                   
                }
                dt.Rows.Add(dtRow);
            }
            return dt;
        }
        /// <summary>
        /// 計算ListView 中的子項集合ListViewGroup
        /// </summary>
        /// <param name="lstview"></param>
        /// <param name="lstgroup"></param>
        /// <returns></returns>
        private DataTable ListViewGroupConvertDatat(ListView lstview, ListViewGroup lstgroup)
        {
            
            DataTable dt = new DataTable();
            //獲取各字段名稱
            for (int i = 0; i < lstview.Columns.Count; i++)
            {
                //this.groupBox.Items.Add(lstview.Columns[i].Text);
                dt.Columns.Add(lstview.Columns[i].Text, typeof(string));
            }
            
            foreach (ListViewItem item in lstgroup.Items)
            {

                DataRow dtRow = dt.NewRow();
                int c = 0;
                //dt.Columns.Add(item.ToString());
                //for (int i = 0; i < item.SubItems.Count; i++)
                //{

                //    dtRow[i] = item.SubItems[i].Text;

                //}
                //ListViewItem.ListViewSubItemCollection;
               // ListViewItem.ListViewSubItem
                ListViewGroupCollection
                foreach (ListViewItem.ListViewSubItem it in item.SubItems)                
                {

                    dtRow[c] = it.Text;  
                    c++;
                }
                dt.Rows.Add(dtRow);
            }
       

            return dt;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值