我如何遍历Web窗体数据就像我在ASP.NET MVC吗? 举例来说,在MVC中,这很简单,只要:
<table>
@foreach (var myItem in g)
{
@<tr><td>@MyItem.title<td></tr>
}
</table>
是什么在WebForms的做到这一点的最简单,最简单的方法是什么? 什么将后面的代码是什么样子?
或者,我可以一个MVC项目添加到Web表单应用程序,这样我可以使用MVC功能,而不是?
谢谢。
除了使用中继器,你可以通过类似的MVC型的方式列表循环使用<% %>
和<%= %>
标签。
<table>
<% foreach (var myItem in g) { %>
<tr><td><%= myItem.title %></td></tr>
<% } %>
</table>
只要你通过循环的属性是从ASPX / ascx的页面(例如,作为保护或声明为public),你可以通过它循环acessible。 有必要在后面的代码中没有其他的代码。
<% %>
将评估代码和<%= %>
将输出结果。
这是最基本的例子:
在后面的代码中你的职业等级声明此列表:
public List<string> Sites = new List<string> { "StackOverflow", "Super User", "Meta SO" };
这只是一个简单的字符串列表,所以后来在你的aspx文件
<% foreach (var site in Sites) { %> <!-- loop through the list -->
<div>
<%= site %> <!-- write out the name of the site -->
</div>
<% } %> <!--End the for loop -->
在Web窗体你可以使用Repeater控件:
<asp:Repeater id="cdcatalog" runat="server">
<ItemTemplate>
<td><%# Eval("title")%></td>
</ItemTemplate>
</asp:Repeater>
在后面的代码:
cdcatalog.DataSource = yourData;
cdcatalog.DataBind();
您可以使用Repeater
与任何一种有效的DataSource
( SqlDataSource
, EntityDataSource
, ObjectDataSource
)对象:
- 定义数据源
- 参考该数据源中的Reperater
....
<asp:Repeater id="someRep" runat="server" DataSourceID="YourDataSource">
<ItemTemplate>
<tr>
<td><%# Eval("PropertyName") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
...