DataList控件
工具箱中包括一個DataList控件。該控件可用于創(chuàng)建模板化的列表數(shù)據(jù)??梢栽谝粋€模板化列表中,通過設(shè)置模板來控制呈現(xiàn)該列表的HTML。模板描述如何顯示列表中的某一項的HTML。
提示:DataList控件提供了一些簡單的模板。如果需要精確控制布局,可以考慮使用Repeater控件,該控件將在下文中講解。
在表中列出了DataList控件提供的7個不同的模板變量,它們可用來定義外觀。在這些模板中,除了ItemTemplate模板外,其他都是可選的。
表 DataList控件模板
模板名 說 明
AlternatingItemTemplate 為每一個間隔項提供內(nèi)容和布局。如果沒有定義,在DataList中將為每一項使用ItemTemplate
EditItemTemplate 為當(dāng)前正在編輯的項提供內(nèi)容和布局。如果沒有定義,在DataList中將為正在編輯的項使用ItemTemplate
FooterTemplate 為頁腳提供內(nèi)容和布局。如果沒有定義,DataList將不會有頁腳
HeaderTemplate 為標(biāo)題提供內(nèi)容和布局。如果沒有定義,DataList將不會有標(biāo)題行
ItemTemplate 必須定義。每一項的內(nèi)容和布局的默認(rèn)定義
SelectedItemTemplate 為當(dāng)前選中的行提供內(nèi)容和布局。如果沒有定義,ItemTemplate將被使用
SeparatorTemplate 為項與項之間的分隔符提供內(nèi)容和布局。如果沒有定義,將不會使用分隔符
為了學(xué)習(xí)DataList控件,首先,創(chuàng)建一個新應(yīng)用程序(WebNorthWind-DataControls)或者添加一個頁面到已有的應(yīng)用程序DataControls中。把DataList控件拖到表單中。在“Design”視圖中,打開智能標(biāo)簽可以選擇數(shù)據(jù)源。作為練習(xí),選擇“New Data Source”項,接著選擇“SQL Database”,將新數(shù)據(jù)源命名為DataListCustomerDataSources。使用已有的指向NorthWind的連接,然后設(shè)置選中Customers表中的所有字段。完成后,DataList將被表示字段名稱和綁定到數(shù)據(jù)控件的Label填充。
如果單擊“Source”,將看到DataList控件已經(jīng)定義了許多屬性,以便識別它的數(shù)據(jù)源:
ID="DataList1"
DataKeyField="CustomerID"
DataSourceID="DataListCustomerDataSources">
圖:DataList綁定數(shù)據(jù)控件
在DataList 的開閉標(biāo)簽之間包括一個標(biāo)簽。該標(biāo)簽定義了每一項應(yīng)該如何顯示。在默認(rèn)的< ItemTemplate>標(biāo)簽中,每個列都用Literal控件表示,而綁定的值則用Label控件表示。這些Label控件的Text屬性使用 Eval方法傳入數(shù)據(jù)中的列名創(chuàng)建,如下所示:
Text=
提示:Eval返回的是傳入的列名所對應(yīng)的列數(shù)據(jù)的值。
有多種可以改善該控件外觀的方法。首先,回到“Design”視圖,單擊“Auto Format…”,選擇一個方案(如Classic),這樣做將為DataList增加許多樣式:
ID="DataList1"
DataKeyField="CustomerID"
DataSourceID="DataListCustomerDataSources"
CellPadding="4"
ForeColor="#333333">
...
...
另外,可以回到智能標(biāo)簽,選擇“Edit Templates”,這將使智能標(biāo)簽變?yōu)?ldquo;Template Editing Mode”(模板編輯模式,直到單擊“End Template Editing”,該模式才結(jié)束),并提供一個下拉菜單來選擇需要編輯哪個模板。
可以通過展開或者移動模板中的元素來隨意修改模板、添加新的控件等。
作為替代,可以直接在內(nèi)容文件中添加或者修改模板。選擇何種方法由個人決定。每個模板都支持它自己的樣式對象,這些對象可以在設(shè)計時設(shè)置并在運行時修改。
默認(rèn)情況下,每個項是一個接著一個顯示的,位于一個垂直的列中。可以通過把DataList的“Repeat Direction”屬性由Vertical設(shè)置為Horizontal來修改它,也可以通過設(shè)置RepeatColumns屬性來設(shè)置列的數(shù)量。
在DataList控件中,包括一些控制外觀和行為的常用屬性,它們并不是從Control或WebControl類繼承的,如表所示。
表 未從WebControl類繼承的DataList控件屬性
屬 性 類 型 讀 寫 值 說 明
Caption String × × 作為HTML caption元素顯示的文本
CaptionAlign TableCaptionAlign × × Bottom、Left、NotSet、Right、Top
指定caption元素的放置位置
CellPadding Integer × × 單元格內(nèi)容和邊框之間的像素數(shù)
CellSpacing Integer × × 單元格之間的像素數(shù)
DataKeyField String × × 指定數(shù)據(jù)源中的鍵字段
DataKeys DataKeyCollection × × 每條記錄的鍵值的集合
續(xù)表 未從WebControl類繼承的DataList控件屬性
屬 性 類 型 讀 寫 值 說 明
DataMember String × × 設(shè)定多成員數(shù)據(jù)源中的數(shù)據(jù)成員
DataSource Object × × 為控件設(shè)置數(shù)據(jù)源
EditItemIndex Integer × × 編輯的行,從零開始的行索引。如果沒有項被編輯或者清除對某項的選擇,設(shè)置值為-1
EditItemStyle TableItemStyle × 派生自WebControl.
Style類,目前選中的編輯行的樣式
FooterStyle TableItemStyle × 派生自WebControls.
Style類,頁腳部分的樣式屬性
TAG:高端網(wǎng)站建設(shè)高端網(wǎng)站設(shè)計網(wǎng)站制作網(wǎng)站建設(shè)