当前位置: 首页 > news >正文

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")

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



         

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


              方法二:设置DataPropertyName属性

                         比如。我如今仅仅想显示username,首先,右击窗口上的DataGridView控件。然后选择编辑列:



加入一个叫username的列,然后设置列的DataPropertyName属性,通过这个属性,能够设置绑定到实体的某个属性值,datatable的某个列等。  这里的DataPropertyName值要跟实体的属性名相应



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

  <span style="font-size:18px;">       myDataGrid.AutoGenerateColumns = False  '不同意自己主动加入列
        myDataGrid.DataSource = myList '设置数据源</span>

            这样就ok了~


        执行下,能够看到这样的效果:


       

         小结:

                   真心感觉DataGridView这个空间很好用,直接绑定数据源就能够显示数据。

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

             

          



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


相关文章:

  • 前端小功能开发过程小结
  • centos 开启Telnet 服务
  • Linux双网卡绑定bond详解
  • 调试问题杂记
  • 微服务中的异步消息通讯
  • Jenkins使用教程之用户权限管理(包含插件的安装)
  • Lucene5学习之FunctionQuery功能查询
  • linux 系统函数之 (dirname, basename)【转】
  • [转] Java关键字final、static使用总结
  • thrift-TFileTransport
  • linux配置nfs步骤及心得
  • idea工具使用 修改resource无法立即生效 需要重启
  • 并查集专题: HDU1232畅通工程
  • 深入理解7816(3)-----关于T=0 【转】
  • 安装aix 6.1系统的完整教程,初学者都可以学会
  • 2018一半小结一波
  • ES6系统学习----从Apollo Client看解构赋值
  • ESLint简单操作
  • Java编程基础24——递归练习
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • php的插入排序,通过双层for循环
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 高度不固定时垂直居中
  • 码农张的Bug人生 - 初来乍到
  • 区块链共识机制优缺点对比都是什么
  • 深度学习中的信息论知识详解
  • 听说你叫Java(二)–Servlet请求
  • 我的面试准备过程--容器(更新中)
  • 详解NodeJs流之一
  • - 转 Ext2.0 form使用实例
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​批处理文件中的errorlevel用法
  • #1014 : Trie树
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matlab)使用竞争神经网络实现数据聚类
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转载)(官方)UE4--图像编程----着色器开发
  • .NET CLR基本术语
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET MVC第三章、三种传值方式