程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET自定義控件 第六天 可以綁定數據源的星級控件

ASP.NET自定義控件 第六天 可以綁定數據源的星級控件

編輯:關於ASP.NET

1. 引言

以上幾個任務裡,我們創建了一些簡單但很實用的自定義控件,但是它們只能按照固定的設置進行呈現,缺少一些關鍵的特征——數據綁定和有時為了更靈活的控制以支持模版設置。在ASP.NET數據綁定控件分為三種:

簡單數據綁定:簡單數據綁定將一個對象與某個控件的屬性綁定在一起。數據源只是綁定單個數據項,而不是綁定一個數據項列表。簡單數據綁定使用數據綁定表達式完成,數據綁定表達式是用<%#...%>封裝的任何可執行代碼。

列表控件:列表控件是通過一個固定不變的用戶界面顯示一個數據項列表的控件。常見的列表控件包含RadioButtonList控件、CheckBoxList控件和ASP.NET2.0中新引入的BulletedList控件。

復雜數據綁定:復雜數據綁定控件通常是顯示一組數據項的組合控件,它們有著靈活的呈現機制,例如GridView控件就是一個復雜數據綁定控件。

為了使星級控件在使用時能夠通過某個數據源顯示數據,需要使該控件擁有數據綁定的能力,使用時數據綁定方法代碼看起來可能如下所示:

private void BindData()
{
DataTable table = new DataTable();
DataColumn col = new DataColumn("Comment",typeof(string));
table.Columns.Add(col);
col = new DataColumn("Score",typeof(int));
table.Columns.Add(col);
DataRow row = table.NewRow();
row[0] = "Vista";
row[1] = 3;
table.Rows.Add(row);
table.AcceptChanges();
star.DataSource = table;
star.DataTextField = "Comment";
star.DataValueField = "Score";
star.DataBind();
}

2. 分析

在開始列表控件之前再來討論一下簡單數據綁定,前幾次開發的星級控件就是一個簡單數據綁定控件,我們直接可以為他的某個屬性使用數據綁定表達式賦值,例如在StartTest.aspx中編寫如下代碼使用自定義控件:

<cc:Star ID="star" runat="server" Score="4" Comment="<%#DateTime.Now%>" Font-Size="12px" />

在頁面中預覽——很不巧,當前日期並沒有顯示在頁面上,這是由於在頁面中定義的任何數據綁定表達式,只有在調用DataBound方法之後才會進行計算。我們有多種選擇,既可以調用頁面對象(Page)的DataBind方法,也可以調用具體控件上的DataBind方法,實際上,如果調用頁面對象上的DataBind方法,它將遞歸的調用頁面中定義的所有控件上的DataBind方法。這就意味著,如果頁面上使用了多個數據綁定表達式,最好還是通過調用Page.DataBind方法執行數據綁定。

如果想了解在數據綁定時底層究竟執行了什麼操作,可以打開ASP.NET的調試功能,並改變臨時文件目錄,修改web.config中complcation配置節如下所示:

<compilation debug="true" tempDirectory="c:\web">
…… ……
</complation>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved