表格綁定數據源


"Table表格可以動態綁定數據源嗎?能綁定什么類型的數據源呢?控件綁定的不好控制樣式 想用手寫的表格顯示數據"?
如下圖:

 

看到此圖,一般是asp.net顯示單記錄的詳細。不管你是用

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


還是

 <table style="width: 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM