`
f002489
  • 浏览: 270925 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

数据绑定控件----DataSource属性

    博客分类:
  • C#
 
阅读更多
http://pin5i.com/showtopic-21778.html

  

数据绑定控件,都有DataSource属性,用于指定数据源。通常情况下,也是比较常用的就是数据源是数据表(DataTable),其实DataSource的范围很广,我们可以在深入研究的同时,改善我们的程序。

  有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的“温故而知新”的真正内涵。

      常用的数据绑定控件有:Repeater、DataList、GridView、DetailsView等,在这里我拿Repeater来简单说明问题。

   使用该属性指定用来填充 Repeater 控件的数据源。DataSource 可以是任何 System.Collections.IEnumerable 对象,

  如用于访问数据库的 System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、数组或 IListSource 对象。

  常用的数据源:

  一个 DataTable

  一个 DataView

  一个 DataSet

  任何实现 IListSource 接口的组件

  任何实现 IList 接口的组件

注意:

  若要绑定到对象的强类型数组,该对象类型必须包含公共属性。



下面通过几个简单的实例来介绍DataSource的具体应用。



<1>绑定DataTable,一般都是从数据库取出数据,然后直接进行绑定,具体的数据库操作的逻辑不再提供。想必大家都已经非常熟悉。绑定DataView与这个类似。     private void BindData()

    {

        //通过业务逻辑,直接调用数据库中的数据

        DataTable nTable = getTable();



        Repeater1.DataSource = nTable;

        Repeater1.DataBind();

    }

复制代码Html代码

Repeater             <asp:Repeater ID="Repeater1" runat="server">

                <HeaderTemplate>

                    <table>

                        <tr>

                            <th scope="col">

                                姓名</th>

                            <th>

                                年龄</th>

                        </tr>

                </HeaderTemplate>

                <ItemTemplate>

                    <tr>

                        <td>

                            <%#Eval("Key") %>

                        </td>

                        <td>

                            <%#Eval("value") %>

                        </td>

                    </tr>

                </ItemTemplate>

                <FooterTemplate>

                    </table></FooterTemplate>

            </asp:Repeater>

复制代码<2>绑定Array、ArrayList、List、一维数组之类,里面存储简单的数据。

ArrayList     private void BindData()

    {

        ArrayList list = new ArrayList();

        list.Add("Jim");

        list.Add("Tom");

        list.Add("Bluce");

        list.Add("Mary");



        Repeater1.DataSource = list;

        Repeater1.DataBind();

    }

复制代码Html适当改变         <asp:Repeater ID="Repeater1" runat="server">

            <HeaderTemplate><table><tr><th scope="col">姓名</th></tr></HeaderTemplate>

            <ItemTemplate><tr><td><%#Container.DataItem %></td></tr></ItemTemplate>

            <FooterTemplate></table></FooterTemplate>

        </asp:Repeater>

复制代码<3>绑定Dictionary、HashTable

Dictionary     private void BindData()

    {

        Dictionary<string, int> dic = new Dictionary<string, int>();

        dic.Add("Jim", 21);

        dic.Add("Tom", 26);

        dic.Add("Bluce", 33);

        dic.Add("Mary", 18);



        Repeater1.DataSource = dic;

        Repeater1.DataBind();

    }

复制代码Html代码         <asp:Repeater ID="Repeater1" runat="server">

            <HeaderTemplate><table><tr><th scope="col">姓名</th><th>年龄</th></tr></HeaderTemplate>

            <ItemTemplate><tr><td><%#Eval("Key") %></td><td><%#Eval("value") %></td></tr></ItemTemplate>

            <FooterTemplate></table></FooterTemplate>

        </asp:Repeater>

复制代码<4>绑定对象集合,IList等。这个很是有用,在我们进行数据查询的时候,经常从数据库取出数据,为了方便操作,需要封装成对象,但是有的时候需要将这些对象以列表的形式显示出来,一种解决方案:对象转换为DataTable,另一种就是直接调用数据库。这两种方案,并不是很理想。而这里直接将对象集合直接绑定到数据显示控件,给我指明一条出路。其实,在PetShop4.0就是利用这一点,绑定ICollection或者IList。简单明了。

一个简单的用户类,包含两个公共属性。

User using System;

using System.Data;



/// <summary>

/// Summary description for User

/// </summary>

public class User

{

    private string _Name;

    public string Name

    {

        get { return _Name; }

        set { _Name = value; }

    }

    private int _Age;

    public int Age

    {

        get { return _Age; }

        set { _Age = value; }

    }

    public User()

    {

        //

        // TODO: Add constructor logic here

        //

    }

    public User(string name,int age)

    {

        _Name = name;

        _Age = age;

    }

}

复制代码绑定对象集合:

IList     private void BindData()

    {

        User user1 = new User("Jim", 21);

        User user2 = new User("Tom",23);

        User user3 = new User("Bluce",33);

        User user4 = new User("Mary",18);



        IList<User> list = new List<User>();

        list.Add(user1);

        list.Add(user2);

        list.Add(user3);

        list.Add(user4);





        Repeater1.DataSource = list;

        Repeater1.DataBind();

    }

复制代码对应的Repeater绑定对象的公共属性: <asp:Repeater ID="Repeater1" runat="server">

                <HeaderTemplate>

                    <table>

                        <tr>

                            <th scope="col">

                                姓名</th>

                            <th>

                                年龄</th>

                        </tr>

                </HeaderTemplate>

                <ItemTemplate>

                    <tr>

                        <td>

                            <%#Eval("Name") %>

                        </td>

                        <td>

                            <%#Eval("Age") %>

                        </td>

                    </tr>

                </ItemTemplate>

                <FooterTemplate>

                    </table></FooterTemplate>

            </asp:Repeater>

复制代码
分享到:
评论

相关推荐

    电动车上牌管理系统 SSM毕业设计 附带论文.zip

    电动车上牌管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl

    tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl

    【eclipse和idea两个版本运行源码】基于Java Swing +mysql 实现的网吧管理系统

    一、项目简介 本项目是一套基于Java Swing 开发的网吧管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 二、技术实现 ​后台技术:java swing ​数据库:MySQL ​数据库连接池:c3p0 三、系统主要功能 用户登录: 分为 普通用户和管理员 两种角色 菜单模块:上机,下机, 系统设置:管理员设置,会员设置,计费设置, 退出系统 管理模块:增加会员,删除会员,信息修改,信息查询 视图模块:主页视图,在线用户,统计视图, 统计报表模块:人数报表,收入报表 帮助模块:联系我们,关于系统 详见:https://blog.csdn.net/weixin_43860634/article/details/125247764

    pc-dmis软件脚本-输出Excel格式报告

    使用软件自带的basic脚本编辑制作的脚本 低版本软件无法输出Excel报告,可以通过脚本方式实现这一功能

    【java毕业设计】校园失物招领系统源码(springboot+vue+mysql+说明文档).zip

    项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse

    基于java的网上电子书店h答辩PPT.pptx

    基于java的网上电子书店h答辩PPT.pptx

    基于微信小程序的微信小程序校园失物招领答辩PPT.pptx

    基于微信小程序的微信小程序校园失物招领答辩PPT.pptx

    基于java的基于Java的学生综合测评管理系统答辩PPT.pptx

    基于java的基于Java的学生综合测评管理系统答辩PPT.pptx

    pandas-2.1.4-cp39-cp39-win_amd64.zip

    pandas whl安装包,对应各个python版本和系统(具体看资源名字),找准自己对应的下载即可! 下载后解压出来是已.whl为后缀的安装包,进入终端,直接pip install pandas-xxx.whl即可,非常方便。 再也不用担心pip联网下载网络超时,各种安装不成功的问题。

    判断题 - 题目列表 - 图-练习题集飒飒阿萨

    springboot体育器材管理系统(附源码+数据库)71175

    管理员功能: 用户管理:管理员可以管理用户账户,包括审核新注册用户、禁用违规用户、重置密码等操作。 器材管理:管理员可以管理器材的信息,包括添加新器材、编辑器材详情、设定器材规则和限制等。 器材预约与借还管理:管理员可以处理用户的器材预约请求,确认或调整预约时间,并记录借还操作。 库存管理:管理员可以监控器材库存情况,及时补充不足的器材并处理损坏或报废的器材。 数据统计与报表:管理员可以分析系统的使用情况和借还记录,生成数据统计报表以了解器材使用情况和借还频率等。 系统设置与维护:管理员可以进行系统设置,包括配置器材规则、设定可用时间段、备份数据、优化系统性能等。 消息通知与提醒:管理员可以向用户发送消息通知,如器材预约成功、归还提醒、系统更新通知等。

    Jira插件安装包Dynamic-forms

    Jira插件安装包Dynamic-forms

    pandas-2.1.4-cp311-cp311-win_amd64.zip

    pandas whl安装包,对应各个python版本和系统(具体看资源名字),找准自己对应的下载即可! 下载后解压出来是已.whl为后缀的安装包,进入终端,直接pip install pandas-xxx.whl即可,非常方便。 再也不用担心pip联网下载网络超时,各种安装不成功的问题。

    少儿图形化scratch编程作品源码集100个

    Scratch是一款由麻省理工学院(MIT)的“终身幼儿园团队”开发的图形化编程工具,专为儿童设计,旨在帮助他们学习编程思维和逻辑能力。

    基于java的学生就业管理系统答辩PPT.pptx

    基于java的学生就业管理系统答辩PPT.pptx

    课设毕设基于SpringBoot+Vue的旅游门票信息系统设计与实现源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

    大学志愿填报系统.zip

    随着社会对志愿服务活动的日益重视,各大高校也纷纷参与到志愿服务的行列中。为了更好地管理和记录志愿者活动,提高志愿服务的质量和效率,我们开发了这款大学志愿服务系统。 该系统主要包括多个功能模块,如信息管理、活动管理、学生管理等。信息管理模块允许学校管理员录入、修改和删除学校的基本信息,包括学校账号、名称、联系电话、地址、特色以及办学理念等,确保信息的准确性和完整性。活动管理模块则用于记录和管理志愿者活动的相关信息,包括活动的名称、时间、地点、参与人员等,方便志愿者进行报名和签到。 此外,系统还提供了学生管理模块,用于记录学生的志愿服务经历和表现,为学生参与志愿服务提供便利。同时,系统还支持照片上传和展示功能,通过展示志愿者活动的照片,让更多人了解和关注志愿服务事业。 整个系统界面简洁明了,操作便捷,功能强大。通过使用该系统,高校可以更加高效地管理和记录志愿者活动,提高志愿服务的整体水平。同时,该系统也为广大志愿者提供了一个展示自我、服务社会的平台。

    turbo均衡算法研究

    turbo均衡算法研究

    静态编译的Qt6.7.3(win10+MSVC2022+openssl+静态运行时) part01

    https://blog.csdn.net/aggs1990/article/details/143491823 静态编译的Qt6.7.3(win10+MSVC2022+openssl+静态运行时) 压缩包比较大,这是第一部分

    tornado-6.4b1-cp38-abi3-musllinux_1_1_i686.whl

    tornado-6.4b1-cp38-abi3-musllinux_1_1_i686.whl

Global site tag (gtag.js) - Google Analytics