2011-11-01 58 views
0

我有一個關於DataTable中隱藏行的問題。我知道在http://datatables.net/examples/api/row_details.html有一個例子,但我的情況有點不同。DataTable中隱藏的行擴展

我有一個ElementGroupViewModel其中包含一個ElementViewModel PrimaryElementElementViewModel[] 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。另外,無論顯示多少個LinkedElements,我都希望每個頁面都顯示30 PrimaryElement個記錄。

我不知道我該如何實現這一點。任何人有任何想法?謝謝!

回答

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。

我希望你看到這裏有什麼想法。

Jovan