我对DataTable中隐藏的行有疑问。我知道http://datatables.net/examples/api/row_details.html这里有一个例子,但我的情况有点不同。
我的ElementGroupViewModel
包含ElementViewModel PrimaryElement
和ElementViewModel[] LinkedElement
。在DataTable中,每行包含Element
。在我看来,我有类似的东西
foreach ( var item in Model )
{
@Html.Partial( "_ResultItem", item.PrimaryElement )
foreach ( var linkedItem in item.LinkedElement )
{
@Html.Partial( "_ResultItem", linkedItem )
}
}
我希望它首先显示PrimaryElement
,用户可以展开/折叠每一行以显示/隐藏LinkedElement
。此外,我希望每个页面都显示30条PrimaryElement
条记录,无论显示多少LinkedElements
条。
我不确定如何实现这一目标。有人有什么想法吗?谢谢!
答案 0 :(得分:0)
您无法使用此结构,因为您正在生成与DataTable源不兼容的嵌套静态表。
您是否可以使用没有链接元素的主要元素生成主要主表,并进行从另一个控制器为链接元素加载HTML的Ajax调用,并将其加载到fnOpen中。您可以在http://www.codeproject.com/KB/aspnet/Expandabe-DataTable-MVC.aspx
上找到示例如果您不想进行Ajax调用,可以将每个链接的子数组生成为单独的隐藏表,如:
<table id="linked-1">
linked set 1
</table>
<table id="linked-2">
linked set 2
</table>
<table id="linked-3">
linked set 3
</table>
并从代码项目上的示例替换Ajax调用,其中一些JQuery通过行的id找到链接表,并将链接表内部HTML传递给fnOpen。
我希望你能看到这里的想法。
约万