Welcome 微信登录

首页 / 网页编程 / ASP.NET / 非常ASP.NET: 您将需要用到的独有数据绑定控件

非常ASP.NET: 您将需要用到的独有数据绑定控件2011-10-31 msdn Fritz Onion随 Visual Studio® 2008 一同发布的 ASP.NET 3.5 引入了新的数据绑定控件—ListView。 我知道您正在想什么:为什么 ASP.NET 里还需要另一个数据绑定控件呢?毕竟,当显示数据收集时,我们 已经有超过 10 个控件可供选择,其中包括逐渐不再使用的 DataGrid、新的和改进的 GridView、非常可 靠和简单的 Repeater、独特和灵活的 DataList、方便的 FormView 及其稍显冗余的同行 DetailsView。 当然,还有一维列表控件 BulletedList、ListBox、DropDownList、RadioButtonList 和 CheckBoxList 。

理论上,ListView 可以取代 ASP.NET 里的所有其它数据绑定控件。这一点没有疑义。您可以使用 ListView 控件代替上面列表中的其他每个控件。ListView 还可以使一些数据绑定任务比使用前几个控件 工作起来更加便利,包括 CSS 样式设定、灵活的分页和完善的排序、插入、删除和更新功能。

我 们让介绍 ListView 的典型使用模式,然后讲解控件的功能,展示其灵活性和强大的能力。在本专栏的结 尾,您将掌握足够的信息来决定应该在您的 ASP.NET 工具箱中保留多少个数据绑定控件。

ListView 基础

ListView 是模板驱动的控件,这意味着它默认情况下不会呈现任何数据 ——您必须以模板的形式完全指定希望它呈现的 HTML。与大多数模板控件类似, ItemTemplate 将成为您工作的重点,您需要将绑定数据集中每一行不断重复的 HTML 内容放在 ItemTemplate 里。

ListView 中的新功能,也是它与其它控件的真正不同之处在于引进了 LayoutTemplate。在 LayoutTemplate 中,您可以将要输出的顶级 HTML 定义为控件呈现的内容。例如, 如果希望 ListView 作为表格呈现,则可以在 LayoutTemplate 中包含顶级 <table> 和 <thead> 元素,把行和单元格的呈现留给 ItemTemplate,如图 1 所示(在本示例中,绑定的数据 源将显示包含电影标题和发行日期的简单表格)。图 2 显示了浏览器呈现。

Figure 1 Using LayoutTemplate and ItemTemplate

<asp:ListView runat="server" ID="_simpleTableListView" DataSourceID="_moviesDataSource"> <LayoutTemplate>  <table>   <thead>    <tr>     <th>ID</th>     <th>Title</th>     <th>Release Date</th>    </tr>   </thead>   <tbody>    <asp:PlaceHolder runat="server" ID="itemPlaceholder" />   </tbody>  </table> </LayoutTemplate> <ItemTemplate>  <tr>   <td><%# Eval("movie_id") %></td>   <td><%# Eval("title") %></td>   <td><%# Eval("release_date", "{0:d}") %></td>  </tr> </ItemTemplate></asp:ListView>

Figure 2 显示在表格中的列表