首页 新闻 会员 周边 捐助

ASP.NET中返回IList类型有什么优势?

0
悬赏园豆:80 [已解决问题] 解决于 2009-05-03 17:22

最近在帮导师做的东西中,导师要求所有数据返回类型为集合,做着做着还是不能理解这样到底有什么好。

以前都是用数据集的方式,哪位高手对这个深有理解,希望不吝赐教!

 

另外,谁有没有关于Repeater控件绑定ILsit数据源的Demo,实现Repeater控件对其的编辑、删除、分页、自动编号等功能!真的非常感激!

EriChen的主页 EriChen | 初学一级 | 园豆:31
提问于:2009-04-26 15:11
< >
分享
最佳答案
0

我个人想法来看,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 ...... 你可以参考。 但我用朝鲜语写了。。。 呵啊。。

希望你有好的成果。

OOK | 菜鸟二级 |园豆:330 | 2009-04-26 15:43
其他回答(3)
0

类型安全

chy710 | 园豆:167 (初学一级) | 2009-04-27 09:27
0

支持楼上说的,补充一点就是可以避免装箱和拆箱。

喂 、仚 生 | 园豆:175 (初学一级) | 2009-04-27 09:52
0

省去了强制类型转换,只允许添加相同类型的数据,保证了类型安全,提高性能,这个需要你写出来以后自己慢慢体会滴!!!

我爱太阳花 | 园豆:210 (菜鸟二级) | 2009-04-28 15:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册