1
public class Person
{
    public string First { get; set; }
    public string Last { get; set; }
    public int Age { get; set; }
    public IEnumerable<Child> Children { get; set; }
}

public class Child
{
    public string First { get; set; }
    public string Last { get; set; }
    public int Age { get; set; }
}

我正在寻找一种从我的模型中呈现表格的方法,该模型的类型为IEnumerable<Person>. 我正在尝试生成下表:

<table>
    <tr class="person">
        <td>First 1</td>
        <td>Last 1</td>
        <td>1</td>
    </tr>
    <tr class="child">
        <td>First 1</td>
        <td>Last 1</td>
        <td>1</td>
    </tr>
    <tr class="child">
        <td>First 2</td>
        <td>Last 2</td>
        <td>2</td>
    </tr>
    ...
    ...
</table>

每个人都是一行,他们的每个孩子将是人行下的单独行。这将对 中的每个人重复IEnumerable<Person>

是否有任何网格或组件可以生成这样的表格?我找到了 MvcContrib 的网格组件,但它似乎无法生成这些子行。有没有办法扩展 MvcContrib 的网格来做到这一点?

4

4 回答 4

3

如果您在输出中只需要一个表格,那么像嵌套循环这样简单的东西对您有用吗?

<table>
<% foreach (Person person in Model)
   { %>

   <tr class="person">
    <td><%: person.First %></td>
    <td><%: person.Last %></td>
    <td><%: person.Age %></td>
   </tr>

   <% foreach (Child child in person.Children) { %>

   <tr class="child">
    <td><%: child.First %></td>
    <td><%: child.Last %></td>
    <td><%: child.Age %></td>
   </tr>

   <%} %>

<%} %>
</table>
于 2011-01-17T04:47:02.630 回答
3

我会让它们都实现 fromIPerson然后创建一个DisplayTemplate强类型的IPerson然后循环并调用它

public interface IPerson
{
    string First { get; set; }
    string Last { get; set; }
    int Age { get; set; }
}

<%@ Control Language="C#" Inherits="ViewUserControl<IPerson>" %>

<tr class="<%=Model.GetType().Name.ToLower() %>">
    <td><%: Model.First %></td>
    <td><%: Model.Last %></td>
    <td><%: Model.Age %></td>
</tr>

<table>
<% foreach (Person person in Model) { %>
    <%=Html.DisplayFor(m => person, "IPersonRow") %>
    <% foreach (Child child in person.Children) { %>
    <%=Html.DisplayFor(m => child, "IPersonRow") %>
    <% } %>
<% } %>
</table>
于 2011-01-17T04:52:34.623 回答
0

您可以使用 jQuery 插件。以下是相当不错的:

两者都是开源的。有一个商业版本的 jqGrid,它为您提供 MVC 助手来轻松创建表。

于 2011-01-17T07:37:16.430 回答
0

好问题!!我们可以做以下

父子 父 1 子 1,子 2 父 2 子 3

如果是,

创建一个将打印父级的所有子级的用户控件,使用此控件呈现子列。

如果您有任何其他查询,请告诉我。

让我们一起学习

于 2011-01-17T07:22:59.750 回答