转载自:http://blog.sina.com.cn/s/blog_4b3485000100prhl.html

代码:

 using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms; namespace DesignPatternTest
{
class ListViewFill
{
/// <summary>
/// 为ListView绑定DataTable数据项
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="lv">ListView控件</param>
static public void dataTableToListview(DataTable dt, ListView lv)
{
if (dt != null)
{
lv.View = View.Details;
lv.GridLines = true;//显示网格线
lv.Items.Clear();//所有的项
lv.Columns.Clear();//标题
for (int i = ; i < dt.Columns.Count; i++)
{
lv.Columns.Add(dt.Columns[i].Caption.ToString());//增加标题
}
for (int i = ; i < dt.Rows.Count; i++)
{
ListViewItem lvi = new ListViewItem(dt.Rows[i][].ToString());
for (int j = ; j < dt.Columns.Count; j++)
{
// lvi.ImageIndex = 0;
lvi.SubItems.Add(dt.Rows[i][j].ToString());
}
lv.Items.Add(lvi);
}
lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);//调整列的宽度
}
} /// <summary>
/// ListView反向填充DataTable数据项
/// </summary>
/// <param name="lv">ListView控件</param>
/// <param name="dt">DataTable</param>
static public void listViewToDataTable(ListView lv, DataTable dt)
{
DataRow dr;
dt.Clear();
dt.Columns.Clear();
for (int k = ; k < lv.Columns.Count; k++)
{
dt.Columns.Add(lv.Columns[k].Text.Trim().ToString());//生成DataTable列头
}
for (int i = ; i < lv.Items.Count; i++)
{
dr = dt.NewRow();
for (int j = ; j < lv.Columns.Count; j++)
{
dr[j] = lv.Items[i].SubItems[j].Text.Trim();
}
dt.Rows.Add(dr);//每行内容
}
}
}
}

ListView与DataTable传递数据的更多相关文章

  1. 【Wince-DataTable填充ListView】DataTable的数据填充到ListView控件,适用.Net2.0

    在开发WinCE6.0程序的时候,要把DataTable的数据显示到ListView控件上,无法使用绑定, 只能使用循环遍历. 思路:外循环遍历行,内循环遍历列 //DataTable:dt2 //L ...

  2. WCF分布式开发步步为赢(8):使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

    数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NE ...

  3. AppCan学习笔记----关闭页面listview动态加载数据

    AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...

  4. 两个Fragment之间如何传递数据

    FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来.有什么办法? Fragment之间不能直接通信,必须通过Activit ...

  5. android83 Activity的生命周期,启动模式,返回时传递数据

    #Android四大组件 * Activity * BroadCastReceiver * Service * ContentProvider #Activity生命周期 * oncreate:Act ...

  6. 核心基础以及Fragment与Activity传递数据完整示例

    MainActivity如下: package cc.testsimplefragment0; import android.os.Bundle; import android.app.Activit ...

  7. 【ASP.NET MVC】View与Controller之间传递数据

    1   概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Co ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  9. Intent 简介 结构 传递数据 常见Action 常量 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

随机推荐

  1. 如何开始一个模块化可扩展的Web App(转)

    原文链接:http://avnpc.com/pages/start-a-modular-extensible-webapp 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性 ...

  2. Servlet、SPringMVC、Struts等防止表单反复提交的多种处理方法

    第一种处理方法(非拦截器): 眼下这样的方法不建议,由于JSP规范不建议写JAVA代码.这样的能够方便另外一种处理方法的理解,另外一种方法引入拦截器的思想,原理基本一样,模仿Struts的Token机 ...

  3. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法(转)

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  4. js 解析XML 在Edge浏览器下面 无法准确读到节点属性值

    js 解析XML 在Edge浏览器下面 无法准确读到节点属性值 Dom.documentElement.childNodes[j].attributes[2]  这个是大众写法 在win10的edge ...

  5. 创建BDC(Business Data Connectivity Service)

    创建Business Data Connectivity http://blog.csdn.net/spfarm/article/details/44015915 创建和使用Business Data ...

  6. lightOJ 1047 Neighbor House (DP)

    lightOJ 1047   Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...

  7. (IOS)国际本地化设置

    首先New File,在Resource中选择Strings File: 然后命名该strings文件,必须命名为 Localizable : 再者选中该strings文件,在Localization ...

  8. jquery 几点注意事项

    jquery触发hover事件 使用 mouseenter/mouseleave/mouseover/mouseout

  9. 让innerHTML方法添加到元素里的js可以被解析执行

    <!DOCTYPE html> <html> <head> </head> <body> <div id="test&quo ...

  10. AseoZdpAseo.init(this, AseoZdpAseo.INSERT_TYPE);

    让以后的人知道吧,这就是一个广告包,相当于广告插件.