我个人想法来看,DataSet 比 IList 重,速度上有差异,如果用 IList Interface 速度会更快。
Repeater控件是一个很轻的Control. 它不像GridView那样功能多,如果你开发过 Shopping Mall 可以看得出,GridView 绑定数据的速度比 Repeater慢。但如果开发小型网站,我想GridView会更好一些,因为功能多。
Repeater控件绑定ILsit数据源跟GridView 一样。 我用LINQ简单的写了以下程序供你参考
数据库 "Northwind" . 表 "Products"
.aspx
========================================================
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<tr style="background-color:AliceBlue">
<td>ProductID</td>
<td>ProductName</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("ProductID") %></td>
<td><%#Eval("ProductName") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
==========================================================
.aspx.cs
===================
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = GetData();
Repeater1.DataBind();
}
private IList GetData()
{
NorthwindClassesDataContext db = new NorthwindClassesDataContext();
IList data = (from p in db.Products
select p).ToList();
return data;
}
=======================================================
如果你想用Repeater实现CRUD功能的话,很简单。 每行添加一个Button或 LinkButton 在这控件属性里有CommandArgumnt和CommandName。用这个属性记住Primary Key。 如果有了Primary Key 就完事OK了吧?
CommandArgumnt和CommandName属性可以用OnCommand Event 来 Access.
在我的Blog里有 Repeater Paging ...... 你可以参考。 但我用朝鲜语写了。。。 呵啊。。
希望你有好的成果。
类型安全
支持楼上说的,补充一点就是可以避免装箱和拆箱。
省去了强制类型转换,只允许添加相同类型的数据,保证了类型安全,提高性能,这个需要你写出来以后自己慢慢体会滴!!!