AlternatingItemTemplate類似于 ItemTemplate 元素
通過使用模板顯示數(shù)據(jù)源中的項。通過操作組成 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)。通過設置 AlternatingItemTemplate 元素的樣式屬性,可以為其指定不同的外觀。
EditItemTemplate 項在設置為編輯模式后的布局。此模板通常包含編輯控件(如 TextBox 控件)。當 EditItemIndex 設置為 DataList 控件中某一行的序號時,將為該行調(diào)用 EditItemTemplate。
FooterTemplate 在 DataList 控件的底部(腳注)呈現(xiàn)的文本和控件。
FooterTemplate 不能是數(shù)據(jù)綁定的。
HeaderTemplate 在 DataList 控件頂部(標頭)呈現(xiàn)的文本和控件。
HeaderTemplate 不能是數(shù)據(jù)綁定的。
ItemTemplate 為數(shù)據(jù)源中的每一行都呈現(xiàn)一次的元素。
SelectedItemTemplate 當用戶選擇 DataList 控件中的一項時呈現(xiàn)的元素。通常的用法是增加所顯示的數(shù)據(jù)字段的個數(shù)并以可視形式突出標記該行。
SeparatorTemplate 在各項之間呈現(xiàn)的元素。
SeparatorTemplate 項不能是數(shù)據(jù)綁定的。
通過為 DataList 控件的不同部分指定樣式,可以自定義該控件的外觀。下表列出用于控制 DataList 控件不同部分的外觀的樣式屬性。
樣式屬性 說明 樣式類
AlternatingItemStyle 隔項(交替項)的樣式。 TableItemStyle
EditItemStyle 正在編輯的項的樣式。 TableItemStyle
FooterStyle 列表結尾處的腳注(如果有的話)的樣式。 TableItemStyle
HeaderStyle 列表開始處的標頭(如果有的話)的樣式。 TableItemStyle
ItemStyle 單個項的樣式。 Style
SelectedItemStyle 選定項的樣式。 TableItemStyle
SeparatorStyle 各項之間的分隔符的樣式。 TableItemStyle
注意 DataList 控件與 Repeater 控件的不同之處在于,前者支持定向呈現(xiàn)(通過使用 RepeatColumns 和 RepeatDirection 屬性)并且有用于在 HTML 表內(nèi)呈現(xiàn)的選項。
Items 集合包含 DataList 控件的數(shù)據(jù)綁定成員。當在 DataList 控件上調(diào)用 DataBind 方法時該集合將被填充。首先添加標頭(如果有的話),然后為每個數(shù)據(jù)行添加一個 Item 對象。如果存在 SeparatorTemplate,則 Separators 將被創(chuàng)建并添加到各項之間,但不會添加到 Items 集合中。
在為 DataSource 中的行創(chuàng)建所有項之后,F(xiàn)ooter 被添加到該控件中(但不會添加到 Items 集合中)。最后,該控件為每一項(包括標頭、腳注和分隔符)引發(fā) ItemCreated 事件。與大多數(shù)集合不同,Items 集合不公開 Add 或 Remove 方法。但是,可以通過為 ItemCreated 事件提供處理程序來修改項內(nèi)的內(nèi)容。
警告 文本在 DataList 控件中顯示之前并非 HTML 編碼形式。這使得可以在文本中的 HTML 標記間嵌入腳本。如果控件值是用戶輸入的,請務必驗證這些值以防止出現(xiàn)安全漏洞。
有關 DataList Web 服務器控件的屬性和事件的詳細信息,請參見 DataList 類文檔。
示例
以下示例說明如何使用 DataList 控件顯示數(shù)據(jù)源中的項。
[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>
請參見
相關文章
.Net?Core微服務網(wǎng)關Ocelot集成Consul
這篇文章介紹了.Net?Core微服務網(wǎng)關Ocelot集成Consul的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-01-01在ASP.NET 2.0中操作數(shù)據(jù)之七十:配置數(shù)據(jù)庫連接和命令等級設置
TableAdapters將數(shù)據(jù)訪問等細節(jié)進行的封裝,但是默認情況下這些屬性要么標記為internal要么為private,我們可以使用部分類,在部分類里使用標記為public的方法或?qū)傩浴?/div> 2016-05-05ASP.NET MVC4入門教程(五):從控制器訪問數(shù)據(jù)模型
本文介紹ASP.NET MVC4中在創(chuàng)建控制器的時候,同時使用Entity Framework為模型生成增刪改查等方法,方便控制器調(diào)用。2016-04-04在ASP.NET 2.0中操作數(shù)據(jù)之十二:在GridView控件中使用TemplateField
本文主要講解在GridView控件中如何使用TemplateField,從而更加高級的自定義GridView,實現(xiàn)自定義列表的功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之十四:使用FormView 的模板
前面介紹了GridView和DetailsView控件可以使用TemplateField來自定義輸出,但是呈現(xiàn)的樣式還是一種四四方方的格子狀。當我們想完全自定義的時候,他們就愛莫能助了,這時我們就可以使用FormView控件來實現(xiàn)我們想要的效果了。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之二十八:GridView里的Button
本文主要介紹ASP.NET 2.0在GridView,DetailsView,FormView都可以包含Buttons,LinkButtons,或ImageButtons.這些button被點擊時,并激發(fā)FormView和DetailsView的ItemCommand事件,GridView的RowCommand事件,根據(jù)CommandName的值來判斷哪個button被點擊了,執(zhí)行相應的代碼。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之三十四:基于DataList和Repeater跨頁面的主/從報表
前面介紹了使用GridView實現(xiàn)跨頁面的主/從報表,同樣DataList和Repeater也可以實現(xiàn)相同功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之十六:概述插入、更新和刪除數(shù)據(jù)
本文主要介紹ASP.NET中插入、更新和刪除數(shù)據(jù)的原理,ObjectDataSource在頁面和潛在的數(shù)據(jù)之間扮演一個代理的角色,配合業(yè)務邏輯可以執(zhí)行Select()、Insert()、Update()和Delete()方法。2016-05-05最新評論