【牛腩新闻发布系统】--Repeater与GridView

来源:互联网 发布:mariaarredondo 知乎 编辑:程序博客网 时间:2024/06/04 18:44

背景

       牛腩进行到前后台整合阶段了,于是也有一些没有接触过的东西陆续出现,Repeater与GridView就是其中之一。牛腩老师说Repeater产生的多余代码特别少,所以最好用Repeater,但是在牛腩新闻发布系统中依旧使用了GridView,所以就证明他们各有优缺点。

GridView

优点:
(1)由WebControl派生出来的,拥有WebControl样式属性,自身会被解析为table,每一行都会被解析成tr-td;
(2)功能最强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,直接拖拽到页面上,建立新的数据源,点几下鼠标就可以维护一个表的浏览、增加、删除和修改了;
(3)模板已经定制好。
缺点:
(1)占用系统资源大,他的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢,效率极低;
(2)而且因为模板已经定制好,想自己灵活控制,不太容易。

Repeater

优点:
(1)功能简单,效率高,容易灵活控制生成的HTML代码,整体来说,如果用习惯repeater就会喜欢上,适合前台使用;
(2)他只是循环内容,不用产生.net指定的一系列垃圾代码;
缺点:
(1)Repeater是从Control派生出来的,它只是重复模板中的内容,这也是为什么repeater没有提供ItemStyle,SelectItemTemplate这些模板和样式控制的原因;
(2)虽不用产生.net指定的一系列垃圾代码,但同时他也失去了.net提供的部分功能。

代码体现

GridView

<asp:GridView ID="gvNewNews" runat="server" AutoGenerateColumns="False" BorderWidth="0" GridLines="None">                    <Columns>                        <asp:TemplateField HeaderText="所属类别" HeaderStyle-CssClass="th_category">                            <ItemTemplate>                                <a class="td_category" href='list.aspx?caid=<%#Eval("caId") %>'>[<%# Eval("name") %>]</a>                            </ItemTemplate>                        </asp:TemplateField>                        <asp:TemplateField HeaderText="新闻标题">                            <ItemTemplate>                                <a href='newscontent.aspx?newsid=<%#Eval("id")%>' target="_blank" title='<%# Eval("title") %>'><%# StringTruncat(Eval("title").ToString(), 18 ,"...") %></a>                            </ItemTemplate>                        </asp:TemplateField>                        <asp:TemplateField HeaderText="发布时间" HeaderStyle-CssClass="th_time" ItemStyle-CssClass="td_time" >                            <ItemTemplate>                                <asp:Label ID="Label3" runat="server" Text='<%# Bind("createtime") %>'></asp:Label>                            </ItemTemplate>                        </asp:TemplateField>                    </Columns>                </asp:GridView>

Repeater

<asp:Repeater ID="repCategory" runat="server">                        <ItemTemplate>                            <li><a href='list.aspx?caid=<%# Eval("id") %>'><%# Eval("name") %></a></li>                        </ItemTemplate>                    </asp:Repeater>

总结

       从使用上讲的话,就要看我们比较善于使用哪个了,Repeater比较容易设置样式,功能比较少,所以就减少了多余代码的产生;GridView比较容易做增删改等操作。

原创粉丝点击