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;)这样会将 ...
随机推荐
- Django 中CSRF中间件 'django.middleware.csrf.CsrfViewMiddleware',
1.Django中CSRF中间件的工作原理及form表单提交需要添加{% csrf_token %}防止出现403错误 CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站 ...
- [linux小技巧]批量移动文件
for i in {1..23};do mv test$i/ ../;done
- web结对项目
一.Coding.Net项目地址: https://git.coding.net/verde/Pair_Work.git 二.对接口进行的设计 看教科书和其它资料中关于Informati ...
- Spring 依赖注入(二、注入参数)
注入参数基本分7类: 1.基本类型值 2.注入bean 3.内部bean 4.注入null值 5.级联属性 6.List,Set,Map集合的注入 7.properties文件的注入(和集合注入基本是 ...
- ACM程序设计选修课——1065: Operations on Grids(暴力字符串)
1065: Operations on Grids Time Limit: 3 Sec Memory Limit: 128 MB Submit: 17 Solved: 4 [Submit][Sta ...
- HDU——1715大菲波数(大数加法)
大菲波数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- BZOJ1226 [SDOI2009]学校食堂Dining 【状压dp】
题目 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示 ...
- python自动化测试报告(excel篇)
转:https://www.jianshu.com/p/6c5d328bf390 # -*- coding: utf-8 -*- import xlsxwriter def get_format(wd ...
- element-ui select组件使用需要注意的
当在使用select组件的时候,要注意 <el-select v-model="scope.row.state" @change="editDriftStatus& ...
- freemarker实现自定义指令和自定义函数
自定义指令: 1.指令在前台实现 <#macro name param1,param2,param3...paramN> </#macro> 2.指令在后台实现 1.实现Tem ...