博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Csharp: Listview convert Datatable and ListView.Group count
阅读量:7121 次
发布时间:2019-06-28

本文共 4982 字,大约阅读时间需要 16 分钟。

1 ///   2         /// 計算ListView各類子項ListViewGroup的數量  3         ///   4         /// 
5 private DataTable getNumber(ListView listview) 6 { 7 ArrayList alist = new ArrayList(); 8 DataTable dt = new DataTable(); 9 dt.Columns.Add("name", typeof(string)); 10 dt.Columns.Add("number", typeof(int)); 11 //獲取各字段名稱 12 for (int i = 0; i < listview.Columns.Count; i++) 13 { 14 alist.Add(listview.Columns[i].Text); 15 } 16 17 foreach (ListViewGroup group in listview.Groups) 18 { 19 string b = group.Header; 20 int c = 0; 21 foreach (ListViewItem itemRow in group.Items) 22 { 23 24 for (int i = 0; i < itemRow.SubItems.Count; i++) 25 { 26 27 string s = itemRow.SubItems[i].Text; 28 if (s == b) 29 { 30 c++; 31 32 } 33 //getlist = ListViewGroupConvertDatat(lsvData, group); 34 35 } 36 37 } 38 getlist = ListViewGroupConvertDatat(lsvData, group); 39 //dt.Rows.Add(group.Header, c); 40 dt.Rows.Add(group.Header, getlist.Rows.Count); 41 group.Header = group.Header + " 共有(" + getlist.Rows.Count.ToString() + ")條記錄"; 42 //for (int i = 0; i < alist.Count; i++) 43 //{ 44 // string s = alist[i].ToString(); 45 // if (s == b) 46 // { 47 // getlist = ListViewGroupConvertDatat(lsvData, group); 48 // dt.Rows.Add(group.Header, getlist.Rows.Count); 49 // } 50 //} 51 52 } 53 return dt; 54 } 55 /// 56 /// ListView Convert DataTabe 57 /// 58 /// 59 ///
60 private DataTable ListViewConvertDataTabe(ListView lstview) 61 { 62 DataTable dt = new DataTable(); 63 //獲取各字段名稱 64 for (int i = 0; i < lstview.Columns.Count; i++) 65 { 66 //this.groupBox.Items.Add(lstview.Columns[i].Text); 67 dt.Columns.Add(lstview.Columns[i].Text, typeof(string)); 68 } 69 //for (int i = 0; i < lstview.Items.Count; i++) 70 //{ 71 // 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); 72 //} //Which Subitems you want to add in the listview 73 //var listView1 = new ListView(); 74 //DataTable table = new DataTable(); 75 76 foreach (ListViewItem item in lstview.Items) 77 { 78 DataRow dtRow = dt.NewRow(); 79 int c = 0; 80 foreach (ListViewItem.ListViewSubItem it in item.SubItems) 81 { 82 dtRow[c] = it.Text; 83 c++; 84 85 } 86 dt.Rows.Add(dtRow); 87 } 88 return dt; 89 } 90 /// 91 /// 計算ListView 中的子項集合ListViewGroup 92 /// 93 /// 94 /// 95 ///
96 private DataTable ListViewGroupConvertDatat(ListView lstview, ListViewGroup lstgroup) 97 { 98 99 DataTable dt = new DataTable();100 //獲取各字段名稱101 for (int i = 0; i < lstview.Columns.Count; i++)102 {103 //this.groupBox.Items.Add(lstview.Columns[i].Text);104 dt.Columns.Add(lstview.Columns[i].Text, typeof(string));105 }106 107 foreach (ListViewItem item in lstgroup.Items)108 {109 110 DataRow dtRow = dt.NewRow();111 int c = 0;112 //dt.Columns.Add(item.ToString());113 //for (int i = 0; i < item.SubItems.Count; i++)114 //{115 116 // dtRow[i] = item.SubItems[i].Text;117 118 //}119 //ListViewItem.ListViewSubItemCollection;120 // ListViewItem.ListViewSubItem121 ////ListViewGroupCollection122 foreach (ListViewItem.ListViewSubItem it in item.SubItems) 123 {124 125 dtRow[c] = it.Text; 126 c++;127 }128 dt.Rows.Add(dtRow);129 }130 131 132 return dt;133 }

 用法:在LISTVIEW 绑定数据后。调用:datatble getlist = getNumber(listview);

转载地址:http://sviel.baihongyu.com/

你可能感兴趣的文章
AngularJS中的表单验证机制
查看>>
ESXI上的新建虚机绑定已使用过的静态ip无法ping通网关的奇怪现象
查看>>
每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?
查看>>
MySQL索引
查看>>
redhat6.5 配置使用centos的yum源
查看>>
Centos下磁盘管理
查看>>
读书笔记-项目计划、进度与控制
查看>>
从有限状态机(FSM)到行为树(Behavior Tree)(1)
查看>>
jvm 解释器和编译器
查看>>
ajax异步session值不唯一 总是改变 解决办法
查看>>
在vsphere上迁移某台虚拟机的连锁步骤
查看>>
DLM - stackglue 层
查看>>
python 基础 学习 内置函数
查看>>
VMware (CentOS 6.x)克隆导致的网卡问题
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
编程语言和shell编程的基础内容以及grep、egrep命令及相应的正则表达式和用法...
查看>>
819C - RAW文件系统、集成文件系统
查看>>
我的友情链接
查看>>
Locating Elements(一)
查看>>
傻瓜式-构建SOHO小型局域网web FTP服务器
查看>>