DataGridView.DataSource= list(Of T)
注:本文样例的代码承接上篇文章:DataTable填充实体类返回泛型集合。
在D层查询完毕之后。我们将DataTable转化为泛型集合。然后经过中间各层,返回U层。到了这里,问题来了。我们这时候要将这个集合作为数据源绑定到DataGridView上,并将结果显示出来。本文主要介绍的就是怎样将集合显示在DataGridView上的问题。(也许你返回的是datatable或一个实体,它们载入数据的原理是一至滴~)
一。显示实体的所有属性
当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 = "password"
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 的所有属性,仅仅须要显示一部分,比方,我们在显示教师信息的时候。可能不须要显示教师的password,这时候该怎么办呢?
方法一:载入全然部数据后手动移除列
如上图中,假设我想移除password这一列,仅仅需在载入全然部数据后。再加上一句代码:
'载入全然部数据后手动移除password这一列
myDataGrid.Columns.Remove("Pwd")
当再次显示,结果就例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGhjMTEwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
尽管也能实现想要的效果,可是总感觉这么做有点儿雷,就好像吃了东西再吐出来那样。反正我是不用。还是看看别的方法吧。
方法二:设置DataPropertyName属性
比如。我如今仅仅想显示username,首先,右击窗口上的DataGridView控件。然后选择编辑列:
加入一个叫username的列,然后设置列的DataPropertyName属性,通过这个属性,能够设置绑定到实体的某个属性值,datatable的某个列等。 这里的DataPropertyName值要跟实体的属性名相应。
之后,我们在代码里面写入
<span style="font-size:18px;"> myDataGrid.AutoGenerateColumns = False '不同意自己主动加入列
myDataGrid.DataSource = myList '设置数据源</span>
这样就ok了~
执行下,能够看到这样的效果:
![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGhjMTEwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
小结:
真心感觉DataGridView这个空间很好用,直接绑定数据源就能够显示数据。
并且假设在D层。查询完毕之后,就将datatable转化为实体集。当结果传到U层DataGridView显示的时候。直接指定dataSource为实体集合。那么,整个过程没有像曾经vb中MSHFlexGrid控件那样:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGhjMTEwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这个过程每次都要一行一行的赋值,避免了filds属性在指定时出错的问题。并且代码更简洁了。我们的工作量也大大降低了。
DataGridView.DataSource= list(Of T)的更多相关文章
- C++: DataGridView::DataSource
#pragma once #include "Form2.h" namespace cdemo { using namespace System; using namespace ...
- 解决DataGridView.DataSource重复赋值而不显示问题
List<Person> list=new List<Person>(); ;i<;i++) { list.Add(new Person(){........}) } d ...
- DataGridView DataSource INotifyPropertyChanged 避免闪烁的方法
代码说话: dgvPosition就是需要避免闪烁的DataGridView 主要是加2段代码 1.SetStyle 2.datagridview设置DoubleBuffered属性为True pub ...
- C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题
帮助类: public class SortBindingHelper<T> : BindingList<T> { private bool isSortedCore = tr ...
- DataGridView DataSource 如何实现排序
将数据绑定在下面的类中就可以实现排序 public class SortableBindingList<T> : BindingList<T> { private ArrayL ...
- [WinForm] DataGridView 绑定 DT && ComboBox 列绑定 Dict
一 需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面 ...
- [Winform] DataGridView 总结(FAQ)
Q1. 如何使单元格不可编辑? A:设置 ReadOnly 属性,可以设置的对象包括 DataGridViewRow(行).DataGridViewColumn(列).DataGridViewCel ...
- 设置DataSource后DateGridView不显示的问题
在一个WinForm小程序中,有两处需要用DataGridView控件显示数据.设置DataGridView.DataSource为数据查询结果后,第一个DataGridView可以正常显示数据,而第 ...
- C# DataGridView控件清空数据完美解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...
随机推荐
- [python测试框架学习篇] 分享一个和adb相关的测试框架
https://testerhome.com/topics/7106 (user: zteandallwinner password: same to qq ) 264768502 · # ...
- 2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest BHanoi tower
B Hanoi tower It has become a good tradition to solve the “Hanoi tower” puzzle at programming contes ...
- Model View Controller(MVC) in PHP
The model view controller pattern is the most used pattern for today’s world web applications. It ha ...
- 【转】hibernate延迟加载和抓取策略
一.延迟加载 1.简单查询get,load 针对对象本身延迟或即时 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load ...
- Hibernate框架简述(转)
转自:http://www.cnblogs.com/eflylab/archive/2007/01/09/615338.html Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用 ...
- 漫谈DNS
文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6189633.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点, ...
- 【Luogu】P4035球形空间产生器(高斯消元)
题目链接 水比题,把圆方程展开减一下把平方都减掉半径的平方也减掉,高斯消元即可. 然后我只输出两位小数,爆了两次零.我好菜啊. #include<cstdio> #include<c ...
- Linux 终端操作之「I/O Redirection」
I/O 重定向是在终端运行程序时很常用的技巧,但是我对它所知甚少.今天我在 DigitalOcean 上发现了一篇很好的 tutorial.这篇随笔记录一下我的心得体会和发现的一个问题. I/O re ...
- BZOJ3990 [SDOI2015]排序 【搜索】
题目 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中操作为将序列从左到 ...
- float浮动的学习
很早以前就接触过CSS,然后就在也没有深入了解过.今天突然遇到有人问了关系浮动的问题,碰巧没事就将内容整理下,与大家交流学习. 首先大家也应该都知道,div是块级元素,在页面中独占一行,自上而下排列, ...