如何通过数据回路中的WebForms像MVC(How to loop through data in

2019-07-19 10:32发布

我如何遍历Web窗体数据就像我在ASP.NET MVC吗? 举例来说,在MVC中,这很简单,只要:

<table>
    @foreach (var myItem in g)
    { 
        @<tr><td>@MyItem.title<td></tr>
    }
</table>

是什么在WebForms的做到这一点的最简单,最简单的方法是什么? 什么将后面的代码是什么样子?

或者,我可以一个MVC项目添加到Web表单应用程序,这样我可以使用MVC功能,而不是?

谢谢。

Answer 1:

除了使用中继器,你可以通过类似的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 -->


Answer 2:

在Web窗体你可以使用Repeater控件:

<asp:Repeater id="cdcatalog" runat="server">
   <ItemTemplate>
       <td><%# Eval("title")%></td>
   </ItemTemplate>
</asp:Repeater>

在后面的代码:

cdcatalog.DataSource = yourData;
cdcatalog.DataBind();


Answer 3:

您可以使用Repeater与任何一种有效的DataSourceSqlDataSourceEntityDataSourceObjectDataSource )对象:

  1. 定义数据源
  2. 参考该数据源中的Reperater

....

 <asp:Repeater id="someRep" runat="server" DataSourceID="YourDataSource">
       <ItemTemplate>
          <tr>
                <td><%# Eval("PropertyName") %></td> 
          </tr>
    </ItemTemplate>
    </asp:Repeater>

...



文章来源: How to loop through data in WebForms like in MVC