非常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 显示在表格中的列表