• 技术文章 >后端开发 >C#.Net教程

    C#数据绑定控件中的DataSource属性浅谈

    黄舟黄舟2017-01-19 11:15:34原创1358
    有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的“温故而知新”的真正内涵。
    常用的C#数据绑定控件有: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与这个类似。
    程序代码

    privatevoidBindData()    
    {    
    //通过业务逻辑,直接调用数据库中的数据    
    DataTablenTable=getTable();    
      
    Repeater1.DataSource=nTable;    
    Repeater1.DataBind();    
    }

    HTML代码
    C#数据绑定控件程序代码

    <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
    <HeaderTemplate>   
    <table>   
    <tr>   
    <thscopethscope="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
    C#数据绑定控件程序代码

    privatevoidBindData()    
    {    
    ArrayListlist=newArrayList();    
    list.Add("Jim");    
    list.Add("Tom");    
    list.Add("Bluce");    
    list.Add("Mary");    
      
    Repeater1.DataSource=list;    
    Repeater1.DataBind();    
    }

    HTML适当改变
    程序代码

    <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
    <HeaderTemplate><table><tr><thscopethscope="col">姓名<th><tr><HeaderTemplate>   
    <ItemTemplate><tr><td><%#Container.DataItem%><td><tr><ItemTemplate>   
    <FooterTemplate><table><FooterTemplate>   
    <asp:Repeater>

    <3>绑定Dictionary、HashTable
    Dictionary
    C#数据绑定控件程序代码

    privatevoidBindData()    
    {    
    Dictionary<string,int>dic=newDictionary<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:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
    <HeaderTemplate><table><tr><thscopethscope="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。简单明了。
    一个简单的用户类,包含两个公共属性。
    程序代码

    usingSystem;  
    usingSystem.Data;  
    
    ///
    
    ///SummarydescriptionforUser  
    ///
    
    publicclassUser  
    {  
    privatestring_Name;  
    publicstringName  
    {  
    get{return_Name;}  
    set{_Name=value;}  
    }  
    privateint_Age;  
    publicintAge  
    {  
    get{return_Age;}  
    set{_Age=value;}  
    }  
    publicUser()  
    {  
    //  
    //TODO:Addconstructorlogichere  
    //  
    }  
    publicUser(stringname,intage)  
    {  
    _Name=name;  
    _Age=age;  
    }  
    }

    绑定对象集合:
    IList
    程序代码

    privatevoidBindData()    
    {    
    Useruser1=newUser("Jim",21);    
    Useruser2=newUser("Tom",23);    
    Useruser3=newUser("Bluce",33);    
    Useruser4=newUser("Mary",18);    
      
    IList<User>list=newList<User>();    
    list.Add(user1);    
    list.Add(user2);    
    list.Add(user3);    
    list.Add(user4);    
      
    Repeater1.DataSource=list;    
    Repeater1.DataBind();    
    }

    对应的Repeater绑定对象的公共属性:
    C#数据绑定控件程序代码

    <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> 
    <HeaderTemplate> 
    <table> 
    <tr> 
    <thscopethscope="col"> 
    姓名th> 
    <th> 
    年龄<th> 
    <tr> 
    <HeaderTemplate> 
    <ItemTemplate> 
    <tr> 
    <td> 
    <%#Eval("Name")%> 
    <td> 
    <td> 
    <%#Eval("Age")%> 
    <td> 
    <tr> 
    <ItemTemplate> 
    <FooterTemplate> 
    <table><FooterTemplate> 
    <asp:Repeater>

    以上就是C#数据绑定控件中的DataSource属性浅谈的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:C#中遍历各类数据集合的方法总结 下一篇:C#浅拷贝和深拷贝实例解析
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• .NET异步编程总结----四种实现模式代码总结• C#学习日记21----封装 与 访问修饰符• SUNWEN教程之----C#进阶(五)• 关于hibernate缓存的问题:• asp.net中3种验证码示例(数字,数字字母混和,汉字)
    1/1

    PHP中文网