任何实现IEnumerable接口的对象集都可以作为DataSource的属性值。
GridView-在HTML表格中显示一组数据记录.例如使用GridView控件显示数据库表的记录,可实现显示、排序、分页、选择和编辑数据。
DataList-在HTML表格中显示一组数据记录,与GridView不同的是,它在一行中能显示多条记录。
Repeater-使用模板显示一组数据记录。与GridView和DataList控件不同的是Repeater控件不会自动呈现为一个HTML表格。 Repeater 控件的数据源。DataSource 可以是任何 System.Collections.IEnumerable 对象,如用于访问数据库的 System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、数组或 IListSource 对象
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Collections.Generic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
void Page_Load()
{
if (!Page.IsPostBack)
{
Repeater1.DataSource = GetPhotos();
Repeater1.DataBind();
}
}
public List<String> GetPhotos()
{
List<string> photos = new List<string>();
string photoPath = MapPath("~/Photos");
string[] files = Directory.GetFiles(photoPath);
foreach (string photo in files)
photos.Add("~/Photos/" + Path.GetFileName(photo));
return photos;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show Photos</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater
id="Repeater1"
runat="server">
<ItemTemplate>
<asp:Image
id="Image1"
Width="200px"
ImageUrl='<%# Container.DataItem %>'
Runat="server" />
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
ListView-使用模板显示一组数据记录,与Repeater不同的是ListView控件支持排序、分页、和编辑数据。
DetailView-在HTML表格中显示一个数据项。例如使用DetailView显示数据表中的单条记录。此控件能够显示、分页、编辑或者添加数据。
FormView-使用模板来显示一个数据项。与DetailView不同的是这个控件可以使用模板来机型窗体布局。