DataGridView 绑定list类, 如何只显示list集合中类的部分属性

一,显示实体的全部属性

当DataGridView的列名就是Class T的属性的时候,这时,只需要绑定数据源,然后手动更改列名就好。

<span style="font-size:14px;"> ‘将dt转换为泛型集合
        myList = EntityHelper.convertToList(Of EntityUser)(dt)

        TextBox1.Text = myList.Count    ‘在文本框里面显示出查询到的教师数目

        If (myList.Count > 0) Then      ‘如果查询到记录
	‘‘‘‘将查询到的数据显示到DataGridView中
	myDataGrid.DataSource = myList  ‘设置控件的数据源:但是这样设置还不够,因为列的名字显示出来还是英文的,所以,还应该设置没列的名字。

	‘修改列名
	myDataGrid.Columns(0).HeaderText = "卡号"
	myDataGrid.Columns(1).HeaderText = "密码"
	myDataGrid.Columns(2).HeaderText = "教师姓名"
	myDataGrid.Columns(3).HeaderText = "教师级别"
	myDataGrid.Columns(4).HeaderText = "注册日期"
	myDataGrid.Columns(5).HeaderText = "注册时间"
	myDataGrid.Columns(6).HeaderText = "注销日期"
	myDataGrid.Columns(7).HeaderText = "注销时间"
	myDataGrid.Columns(8).HeaderText = "上机状态"

        Else
	MsgBox("没有查询到任何记录!")
        End If</span>

显示结果如下:

二,显示Class T 的部分属性

有时候,我们并不是要显示T 的全部属性,只需要显示一部分,比如,我们在显示教师信息的时候,可能不需要显示教师的密码,这时候该怎么办呢?

方法一:
加载完所有数据后手动移除列

如上图中,如果我想移除密码这一列,只需在加载完所有数据后,再加上一句代码:

‘加载完所有数据后手动移除密码这一列
            myDataGrid.Columns.Remove("Pwd")

当再次显示,结果就如下图:

虽然也能实现想要的效果,但是总感觉这么做有点儿雷,就好像吃了东西再吐出来那样,反正我是不用。还是看看别的方法吧。

方法二:设置DataPropertyName属性

例如,我现在只想显示用户名,首先,右击窗体上的DataGridView控件,然后选择编辑列:

添加一个叫用户名的列,然后设置列的DataPropertyName属性,通过这个属性,可以设置绑定到实体的某个属性值,datatable的某个列等。  这里的
DataPropertyName
值要跟实体的属性名对应

之后,我们在代码里面写入

<span style="font-size:18px;">       myDataGrid.AutoGenerateColumns = False  ‘不允许自动添加列
        myDataGrid.DataSource = myList ‘设置数据源</span>--如果是数据库查询出来的list转换为列表table  datapropertyname应该为转换表的字段(不区分大小写)     这样就ok了~

运行下,可以看到这种效果:

小结:

真心感觉DataGridView这个空间非常好用,直接绑定数据源就可以显示数据。

而且如果在D层,查询完成之后,就将datatable转化为实体集,当结果传到U层DataGridView显示的时候,直接指定dataSource为实体集合,那么,整个过程没有像以前vb中MSHFlexGrid控件那样:

这个过程每次都要一行一行的赋值,避免了filds属性在指定时出错的问题,而且代码更简洁了,我们的工作量也大大减少了。

时间: 2024-10-08 22:27:33

DataGridView 绑定list类, 如何只显示list集合中类的部分属性的相关文章

DataGridView绑定DataTable动态生成列 并且将列名中文显示

方法一: DataGridView绑定获取到的DataTable数据,然后根据每一列手动设置列名,如图 方法二: 在写SQL查询语句的时候,直接在select后边的字段上 AS 想要显示的中文名称即可;如图

[转]WinForm DataGridView 绑定泛型List(List&lt;T&gt;)/ArrayList不显示的原因和解决

背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI 代码如下: using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using System.Windows.Forms; namespace W

WinForm DataGridView 绑定泛型List(List&lt;T&gt;)/ArrayList不显示的原因和解决

背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI 代码如下: using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using System.Windows.Forms; namespace W

asp 之 让实体中字段类型为DateTime的字段只显示日期不显示时间

       在我们平时的工作开发中,我们通常会遇到这样的一个问题:某个实体的某个字段是DateTime类型的,可是我们在界面上只想让它显示日期不显示时间! 一个订单实体: //订单类 public class order { //订单ID public int id{get;set;} //物品ID public int resId{get;set;} //物品名称 public string resName { get; set; } //物品价格 public decimal price

解决:People下面选择分享可见联系人,选择多个联系人后通过短信分享,短信中只显示一个联系人

问题描述: [操作步骤]:People下导入导出中选择分享可见联系人,选择多个联系人后通过短信分享 [测试结果]:短信中只能显示一个联系人 [预期结果]:可以显示多个联系人 经过代码分析,从compose_message_activitu.xml中的ViewStub进行定位到现实联系人名片的视图: <ViewStub android:id="@+id/vcard_attachment_view_stub" android:layout="@layout/vcard_at

thinkphp 操作绑定到类

定义 ThinkPHP3.2版本提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更细化,可以设置参数ACTION_BIND_CLASS,例如: 'ACTION_BIND_CLASS' => True, 设置后,我们的控制器定义有所改变,以URL访问为 http://serverName/Home/Index/index为例,原来的控制器文件定义位置为: Application/Home/Controller/IndexController.class.php 控制器类的定义如下: na

【转】WPF DatePicker只显示年和月

最近的项目,查询时只需要年和月,不需要日,因此需要对原有的DatePicker进行修改,查询了网上的内容,最终从一篇帖子里看到了添加附加属性的方法,地址是http://stackoverflow.com/questions/1798513/wpf-toolkit-datepicker-month-year-only 原文是用了两个类,其中一个是为了让DatePicker下的Calendar只显示年月,不显示日,另一个类是为了让DatePicker格式化为yyyy-MM格式,但是从文章中可以看出,

DataGridView绑定数据源

基础练习 数的读法 时间限制:1.0s   内存限制:512.0MB 问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿. 比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的. 所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法: 十二亿三千四百五十六万七千零九 用汉语拼音表示为 shi er yi san qian

WPF Popup全屏 弹出方法。解决只显示75%的问题。

WPF Popup全屏 弹出方法.解决只显示75%的问题. WPF 中 Popup 有一个特点.当Popup的高度超过屏幕的75%的时候,只显示75%的高度. 如下代码: <Window x:Class="WpfApplication13.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micro