zoukankan      html  css  js  c++  java
  • 表格绑定数据源

    "Table表格可以动态绑定数据源吗?能绑定什么类型的数据源呢?控件绑定的不好控制样式 想用手写的表格显示数据"?
    如下图:

    看到此图,一般是asp.net显示单记录的详细。不管你是用

    <asp:Table ID="Table1" runat="server"></asp:Table>


    还是

     <table style=" 100%;">
                    <tr>
                        <td>&nbsp;</td>                   
                    </tr>               
                </table>


    它是web控件或是html标签,不是数据控件(如Repeater,DataList或GridView),因此没有DataSource的方法。

     如果想把数据绑定至这样的表格中,多少得用手动定制好这个表格,有值显示的field用Label来替代,这样子,才可以在.aspx.cs把数据绑定在其上。

     接下来,我们得准备数据,你可以在数据库,或是在asp.cs中创建Data collection也行,为了简单一些,Insus.NET在asp.cs创建一个DataTable,并填充一笔记录。


    如果你想添加多笔的话,需在上图把第40行拷贝,然后粘帖在其后,然后改动不同的数据。如:


    Ok,怎样把这某一笔显示于刚才的table上呢?,参考下图第21至26行代码,就是绑定数据。

     看看效果:

    以下内容于2013-04-27 12:25补充

    真的,只能如此吗?能否象GridView,DataList或Repeater 数据控件一样,使用

     <%# Eval("XXX") %>


    不管成功与否,都得尝试一下。先把aspx的html改了:

    改好了,我们转至.aspx.cs中,写一个属性,如下图高亮的代码:



    把原来返回DataTable改为返回DataRowView:



    今天重构的部分,都是化繁为简,改动的地方也非常少。我们再看Data_Binding()方法:

    ok,如果你不太喜欢DataRowView的话,可以使用面向对象来处理:
    创建一个对象:

    DriveInfor
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// Summary description for DriveInfor
    /// </summary>
    namespace Insus.NET
    {
        public class DriveInfor
        {
            private string _Name;
            private string _No;
            private string _PermToDrive;
            private string _licAuthority;
            private string _F_Date;
            private string _N_Date;
    
            public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
            public string No
            {
                get { return _No; }
                set { _No = value; }
            }
            public string PermToDrive
            {
                get { return _PermToDrive; }
                set { _PermToDrive = value; }
            }
            public string licAuthority
            {
                get { return _licAuthority; }
                set { _licAuthority = value; }
            }
            public string F_Date
            {
                get { return _F_Date; }
                set { _F_Date = value; }
            }
            public string N_Date
            {
                get { return _N_Date; }
                set { _N_Date = value; }
            }
    
            public DriveInfor()
            {
                //
                // TODO: Add constructor logic here
                //
            }
        }
    }


    在.aspx.cs填充数据至这个对象:


    这样更尽完美。

    重构完成,运行结果与昨天的一样。Insus.NET在想,网友看到之后,也会喜欢此篇博文的。

    以下内容于2013-04-28 11:43补充
    可以下载源程序,包含三种绑定方法,程序于.NET 4.0下运行。
    http://download.cnblogs.com/insus/ASPDOTNET/DataBind_Demo.rar

  • 相关阅读:
    [分享]解决Ubuntu 16.04安装Vitis 2019.2失败的问题
    ZCU102 休眠到内存(suspend-to-ram)对DDR复位信号的设计
    PetaLinux使用bitbake提前下载所有软件包
    Ubuntu 16.04执行基本命令失败,恢复Python版本后正常
    Upgrade Zynq-7000 XIP reference design to Xilinx SDK 2018.3
    区块链入门到实战(26)之以太坊(Ethereum) – 挖矿
    区块链入门到实战(25)之以太坊(Ethereum) – 以太币单位
    区块链入门到实战(24)之以太坊(Ethereum) – 网络节点
    区块链入门到实战(23)之以太坊(Ethereum) – 虚拟机架构
    区块链入门到实战(22)之以太坊(Ethereum) – 账号(地址)
  • 原文地址:https://www.cnblogs.com/insus/p/3045046.html
Copyright © 2011-2022 走看看