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;
        }
时间: 2024-10-10 12:58:33

Csharp: Listview convert Datatable and ListView.Group count的相关文章

attribute-关于listview的问题,listview如何在鼠标滑过行显示高亮

问题描述 关于listview的问题,listview如何在鼠标滑过行显示高亮 看到gridview有这么一段代码实现,鼠标在gridview的行上移动的时候显示高亮.if (e.Row.RowType == DataControlRowType.DataRow){ //当鼠标选择某行时变颜色e.Row.Attributes.Add(""onmouseover""c=this.style.backgroundColor;this.style.backgroundCo

数据-android中listview中镶嵌一个listview后不能完全显示

问题描述 android中listview中镶嵌一个listview后不能完全显示 android中listview中镶嵌一个listview后不能完全显示数据是否跟android版本有关.. 我已经根据子列表的高度动态设置主列表的高度,并在android4.4上运行良好,但是在android4.2机子上还是不能显示 解决方案 按你的验证结果,可能是与 Android 系统的版本相关. 但具体还是要在不能正确显示的机子上调试一下,看看是什么原因导致不能正确显示的. 解决方案二: listview

select- 数据库,求最小 group ,count,min

问题描述 数据库,求最小 group ,count,min 在Table中,我需要查出那个ID出现的频率最小, select count(c1) from table where id=1, select count(c1) from table where id=2 select count(c1) from table where id=3 select count(c1) from table where id=4, 最后查出来的结果理想是 0 1 2 3 不知道有没有好一点的思路,不想在

ScrollView与ListView合用(正确计算Listview的高度)的问题解决_Android

首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法: 复制代码 代码如下: @Override  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {      int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,              MeasureSpec.AT_MOST);    

Android中 ScrollView(ListView)中嵌套ListView时显示不全的简便解决方案

利用下面这个Utility 类的静态方法setListViewHeightBasedOnChildren()即可实现: 在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了. public class Utility { public static void setListViewHeightBasedOnChildren(ListView listView) { //获取ListVi

listview 数据阴影-android listview 滑动数据阴影

问题描述 android listview 滑动数据阴影 我的listview,在显示数据时,偶尔会有滑动数据有阴影的现象.如图所示.一旦有阴影就只能重启才会好.请问高手可能怎么回事! 解决方案 Android[ ListView]滑动数据加载android listView滑动加载数据Android ListView 去阴影 解决方案二: listview有去掉阴影的属性,你查查就可以了 解决方案三: android:id=""@+id/id_main_listview"&

listview刷新-新手请教ListView 刷新问题

问题描述 新手请教ListView 刷新问题 这是显示ListView的界面 package com.security.phonepolice.view; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.json.JSONException; import org.json.JSONObject; import com.loopj.android.http.A

listview多任务下载-Android ListView中多任务下载是如何实现的(给点思路)

问题描述 Android ListView中多任务下载是如何实现的(给点思路) 最近在项目中有个多任务下载的功能,我把下载的类和方法全部都写好了,就是不知道多任务是如何实现的,网上有人说是写个下载管理器,还望各位大牛给说一下思路.类似于这个效果的..这个只是一个虚拟的更新进度条,没实现多任务下载 解决方案 直接使用多线程来下载不同任务,定时刷新进度.

Android Horizontal ListView - 水平滑动的 ListView 组件

Android Horizontal ListView 是 Android 上一个水平滑动的 ListView 组件. 项目主页:http://lib.open-open.com/view/home/1344842204662