AlternatingItemTemplate類似于 ItemTemplate 元素
通過使用模板顯示數(shù)據(jù)源中的項(xiàng)。通過操作組成 DataList 控件的不同組件的模板(如 ItemTemplate 和 HeaderTemplate),可以自定義該控件的外觀和內(nèi)容。
<asp:DataList id="DataList1"
CellPadding="pixels"
CellSpacing="pixels"
DataKeyField="DataSourceKeyField"
DataSource='<% databindingexpression %>'
ExtractTemplateRows="True|False"
GridLines="None|Horizontal|Vertical|Both"
RepeatColumns="ColumnCount"
RepeatDirection="Vertical|Horizontal"
RepeatLayout="Flow|Table"
ShowFooter="True|False"
ShowHeader="True|False"
OnCancelCommand="OnCancelCommandMethod"
OnDeleteCommand="OnDeleteCommandMethod"
OnEditCommand="OnEditCommandMethod"
OnItemCommand="OnItemCommandMethod"
OnItemCreated="OnItemCreatedMethod"
OnUpdateCommand="OnUpdateCommandMethod"
runat="server">
<AlternatingItemStyle ForeColor="Blue"/>
<EditItemStyle BackColor="Yellow"/>
<FooterStyle BorderColor="Gray"/>
<HeaderStyle BorderColor="Gray"/>
<ItemStyle Font-Bold="True"/>
<PagerStyle Font-Name="Ariel"/>
<SelectedItemStyle BackColor="Blue"/>
<HeaderTemplate>
Header template HTML
</HeaderTemplate>
<ItemTemplate>
Item template HTML
</ItemTemplate>
<AlternatingItemTemplate>
Alternating item template HTML
</AlternatingItemTemplate>
<EditItemTemplate>
Edited item template HTML
</EditItemTemplate>
<SelectedItemTemplate>
Selected item template HTML
</SelectedItemTemplate>
<SeparatorTemplate>
Separator template HTML
</SeparatorTemplate>
<FooterTemplate>
Footer template HTML
</FooterTemplate>
</asp:DataList>
備注
通過定義模板,可以操作控件的布局和內(nèi)容。下表列出 DataList 控件的不同模板。
AlternatingItemTemplate 類似于 ItemTemplate 元素,但在 DataList 控件中隔行(交替行)呈現(xiàn)。通過設(shè)置 AlternatingItemTemplate 元素的樣式屬性,可以為其指定不同的外觀。
EditItemTemplate 項(xiàng)在設(shè)置為編輯模式后的布局。此模板通常包含編輯控件(如 TextBox 控件)。當(dāng) EditItemIndex 設(shè)置為 DataList 控件中某一行的序號(hào)時(shí),將為該行調(diào)用 EditItemTemplate。
FooterTemplate 在 DataList 控件的底部(腳注)呈現(xiàn)的文本和控件。
FooterTemplate 不能是數(shù)據(jù)綁定的。
HeaderTemplate 在 DataList 控件頂部(標(biāo)頭)呈現(xiàn)的文本和控件。
HeaderTemplate 不能是數(shù)據(jù)綁定的。
ItemTemplate 為數(shù)據(jù)源中的每一行都呈現(xiàn)一次的元素。
SelectedItemTemplate 當(dāng)用戶選擇 DataList 控件中的一項(xiàng)時(shí)呈現(xiàn)的元素。通常的用法是增加所顯示的數(shù)據(jù)字段的個(gè)數(shù)并以可視形式突出標(biāo)記該行。
SeparatorTemplate 在各項(xiàng)之間呈現(xiàn)的元素。
SeparatorTemplate 項(xiàng)不能是數(shù)據(jù)綁定的。
通過為 DataList 控件的不同部分指定樣式,可以自定義該控件的外觀。下表列出用于控制 DataList 控件不同部分的外觀的樣式屬性。
樣式屬性 說明 樣式類
AlternatingItemStyle 隔項(xiàng)(交替項(xiàng))的樣式。 TableItemStyle
EditItemStyle 正在編輯的項(xiàng)的樣式。 TableItemStyle
FooterStyle 列表結(jié)尾處的腳注(如果有的話)的樣式。 TableItemStyle
HeaderStyle 列表開始處的標(biāo)頭(如果有的話)的樣式。 TableItemStyle
ItemStyle 單個(gè)項(xiàng)的樣式。 Style
SelectedItemStyle 選定項(xiàng)的樣式。 TableItemStyle
SeparatorStyle 各項(xiàng)之間的分隔符的樣式。 TableItemStyle
注意 DataList 控件與 Repeater 控件的不同之處在于,前者支持定向呈現(xiàn)(通過使用 RepeatColumns 和 RepeatDirection 屬性)并且有用于在 HTML 表內(nèi)呈現(xiàn)的選項(xiàng)。
Items 集合包含 DataList 控件的數(shù)據(jù)綁定成員。當(dāng)在 DataList 控件上調(diào)用 DataBind 方法時(shí)該集合將被填充。首先添加標(biāo)頭(如果有的話),然后為每個(gè)數(shù)據(jù)行添加一個(gè) Item 對(duì)象。如果存在 SeparatorTemplate,則 Separators 將被創(chuàng)建并添加到各項(xiàng)之間,但不會(huì)添加到 Items 集合中。
在為 DataSource 中的行創(chuàng)建所有項(xiàng)之后,F(xiàn)ooter 被添加到該控件中(但不會(huì)添加到 Items 集合中)。最后,該控件為每一項(xiàng)(包括標(biāo)頭、腳注和分隔符)引發(fā) ItemCreated 事件。與大多數(shù)集合不同,Items 集合不公開 Add 或 Remove 方法。但是,可以通過為 ItemCreated 事件提供處理程序來修改項(xiàng)內(nèi)的內(nèi)容。
警告 文本在 DataList 控件中顯示之前并非 HTML 編碼形式。這使得可以在文本中的 HTML 標(biāo)記間嵌入腳本。如果控件值是用戶輸入的,請(qǐng)務(wù)必驗(yàn)證這些值以防止出現(xiàn)安全漏洞。
有關(guān) DataList Web 服務(wù)器控件的屬性和事件的詳細(xì)信息,請(qǐng)參見 DataList 類文檔。
示例
以下示例說明如何使用 DataList 控件顯示數(shù)據(jù)源中的項(xiàng)。
[Visual Basic]
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<html>
<script runat="server">
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
Dim i As Integer
For i = 0 To 9
dr = dt.NewRow()
dr(0) = "Item " & i.ToString()
dt.Rows.Add(dr)
Next i
Dim dv As New DataView(dt)
Return dv
End Function 'CreateDataSource
Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
DataList1.DataSource = CreateDataSource()
DataList1.DataBind()
End If
End Sub 'Page_Load
Sub Button1_Click(sender As Object, e As EventArgs)
If DropDown1.SelectedIndex = 0 Then
DataList1.RepeatDirection = RepeatDirection.Horizontal
Else
DataList1.RepeatDirection = RepeatDirection.Vertical
End If
If DropDown2.SelectedIndex = 0 Then
DataList1.RepeatLayout = RepeatLayout.Table
Else
DataList1.RepeatLayout = RepeatLayout.Flow
End If
DataList1.RepeatColumns = DropDown3.SelectedIndex + 1
If Check1.Checked = True And DataList1.RepeatLayout = RepeatLayout.Table Then
DataList1.BorderWidth = Unit.Pixel(1)
DataList1.GridLines = GridLines.Both
Else
DataList1.BorderWidth = Unit.Pixel(0)
DataList1.GridLines = GridLines.None
End If
End Sub 'Button1_Click
</script>
<body>
<form runat="server">
<h3>DataList Example</h3>
<asp:DataList id="DataList1" runat="server"
BorderColor="black"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt">
<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor="Gainsboro">
</AlternatingItemStyle>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "StringValue") %>
</ItemTemplate>
</asp:DataList>
<p>
<hr noshade align="left" width="300px">
RepeatDirection:
<asp:DropDownList id=DropDown1 runat="server">
<asp:ListItem>Horizontal</asp:ListItem>
<asp:ListItem>Vertical</asp:ListItem>
</asp:DropDownList><br>
RepeatLayout:
<asp:DropDownList id=DropDown2 runat="server">
<asp:ListItem>Table</asp:ListItem>
<asp:ListItem>Flow</asp:ListItem>
</asp:DropDownList><br>
RepeatColumns:
<asp:DropDownList id=DropDown3 runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
</asp:DropDownList><br>
Show Borders:
<asp:CheckBox id=Check1 runat="server" /><p>
<asp:LinkButton id=Button1
Text="Refresh DataList"
OnClick="Button1_Click"
runat="server"/>
</form>
</body>
</html>
[C#]
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<html>
<script runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr[0] = "Item " + i.ToString();
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object Sender, EventArgs e)
{
if (!IsPostBack)
{
DataList1.DataSource = CreateDataSource();
DataList1.DataBind();
}
}
void Button1_Click(Object Sender, EventArgs e)
{
if (DropDown1.SelectedIndex == 0)
DataList1.RepeatDirection = RepeatDirection.Horizontal;
else
DataList1.RepeatDirection = RepeatDirection.Vertical;
if (DropDown2.SelectedIndex == 0)
DataList1.RepeatLayout = RepeatLayout.Table;
else
DataList1.RepeatLayout = RepeatLayout.Flow;
DataList1.RepeatColumns=DropDown3.SelectedIndex+1;
if ((Check1.Checked ==true) &&
(DataList1.RepeatLayout == RepeatLayout.Table))
{
DataList1.BorderWidth = Unit.Pixel(1);
DataList1.GridLines = GridLines.Both;
}
else
{
DataList1.BorderWidth = Unit.Pixel(0);
DataList1.GridLines = GridLines.None;
}
}
</script>
<body>
<form runat="server">
<h3>DataList Sample</h3>
<asp:DataList id="DataList1"
BorderColor="black"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
runat="server">
<HeaderStyle BackColor="#aaaadd"/>
<AlternatingItemStyle BackColor="Gainsboro"/>
<HeaderTemplate>
Items
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "StringValue") %>
</ItemTemplate>
</asp:DataList>
<p>
<hr noshade align="left" width="300px">
RepeatDirection:
<asp:DropDownList id=DropDown1 runat="server">
<asp:ListItem>Horizontal</asp:ListItem>
<asp:ListItem>Vertical</asp:ListItem>
</asp:DropDownList><br>
RepeatLayout:
<asp:DropDownList id=DropDown2 runat="server">
<asp:ListItem>Table</asp:ListItem>
<asp:ListItem>Flow</asp:ListItem>
</asp:DropDownList><br>
RepeatColumns:
<asp:DropDownList id=DropDown3 runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
</asp:DropDownList><br>
Show Borders:
<asp:CheckBox id=Check1 runat="server" />
<p>
<asp:LinkButton id=Button1
Text="Refresh DataList"
OnClick="Button1_Click"
runat="server"/>
</font>
</form>
</body>
</html>
請(qǐng)參見
相關(guān)文章
.Net?Core微服務(wù)網(wǎng)關(guān)Ocelot集成Consul
這篇文章介紹了.Net?Core微服務(wù)網(wǎng)關(guān)Ocelot集成Consul的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01在ASP.NET 2.0中操作數(shù)據(jù)之七十:配置數(shù)據(jù)庫連接和命令等級(jí)設(shè)置
TableAdapters將數(shù)據(jù)訪問等細(xì)節(jié)進(jìn)行的封裝,但是默認(rèn)情況下這些屬性要么標(biāo)記為internal要么為private,我們可以使用部分類,在部分類里使用標(biāo)記為public的方法或?qū)傩浴?/div> 2016-05-05ASP.NET MVC4入門教程(五):從控制器訪問數(shù)據(jù)模型
本文介紹ASP.NET MVC4中在創(chuàng)建控制器的時(shí)候,同時(shí)使用Entity Framework為模型生成增刪改查等方法,方便控制器調(diào)用。2016-04-04在ASP.NET 2.0中操作數(shù)據(jù)之十二:在GridView控件中使用TemplateField
本文主要講解在GridView控件中如何使用TemplateField,從而更加高級(jí)的自定義GridView,實(shí)現(xiàn)自定義列表的功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之十四:使用FormView 的模板
前面介紹了GridView和DetailsView控件可以使用TemplateField來自定義輸出,但是呈現(xiàn)的樣式還是一種四四方方的格子狀。當(dāng)我們想完全自定義的時(shí)候,他們就愛莫能助了,這時(shí)我們就可以使用FormView控件來實(shí)現(xiàn)我們想要的效果了。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之二十八:GridView里的Button
本文主要介紹ASP.NET 2.0在GridView,DetailsView,FormView都可以包含Buttons,LinkButtons,或ImageButtons.這些button被點(diǎn)擊時(shí),并激發(fā)FormView和DetailsView的ItemCommand事件,GridView的RowCommand事件,根據(jù)CommandName的值來判斷哪個(gè)button被點(diǎn)擊了,執(zhí)行相應(yīng)的代碼。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之三十四:基于DataList和Repeater跨頁面的主/從報(bào)表
前面介紹了使用GridView實(shí)現(xiàn)跨頁面的主/從報(bào)表,同樣DataList和Repeater也可以實(shí)現(xiàn)相同功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之十六:概述插入、更新和刪除數(shù)據(jù)
本文主要介紹ASP.NET中插入、更新和刪除數(shù)據(jù)的原理,ObjectDataSource在頁面和潛在的數(shù)據(jù)之間扮演一個(gè)代理的角色,配合業(yè)務(wù)邏輯可以執(zhí)行Select()、Insert()、Update()和Delete()方法。2016-05-05最新評(píng)論