2013-08-13 17 views
6

Mam poniższej tabeli: -Jak stworzyć komórki zagnieżdżonych wewnątrz tej samej tabeli TD

<table class="table table-striped"> 
    <thead> 
     <tr> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach(var permisionMag in Model.PermisionManagement) 
     { 
      <tr> 
       <td>@permisionMag.Name</td> 
       @{ 
        int i = 0; 
        <td class="f"> 
         @foreach(var item in permisionMag.TechnologyTypes.OrderBy(a => a.Name)) { 
          @(i+1) @item.Name 
          i = i + 1; 
         } 
         <br />   
        </td> 
       } 
      </tr> 
     } 
    </tbody> 
</table> 

Ale obecnie muszę drugą kolumnę się zagnieżdżać wiersze zamiast pokazywać wiersze wewnątrz samego TD? jakieś rady na ten temat?

+0

Gdzie dokładnie mają zagnieżdżone wiersze? Czy możesz podać jakiś ogólny kod HTML, który jest skonfigurowany tak, jak chcesz, aby twój rzeczywisty kod był? – matthewpavkov

Odpowiedz

1

Można użyć rowspan na pierwszej kolumnie :

<table class="table table-striped"> 
    <thead> 
     <tr> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody>@foreach(var permisionMag in Model.PermisionManagement) { 
     <tr> 
      <td rowspan="@permisionMag.TechnologyTypes.Count()">@permisionMag.Name</td> 
      @{ 
      int i = 0; 
      foreach (var item in permisionMag.TechnologyTypes.OrderBy(a => a.Name)) 
      { 

       i = i + 1; 
       if(i > 1) { 
        </tr><tr> 
       } 
       <td class="f"> 
        @(i+1) @item.Name 
       </td> 
       } 
      } 
     </tr> 
     } 
    </tbody> 
</table> 

See expecting result

Mam nadzieję, że to pomoże.

+0

Zmęczony powyższym ale nie działał wiersze będą zagnieżdżone w sobie nawzajem. –

+0

Teraz działa z tym testem (i> 1) – Damien

1

Nie można generować bezpośrednio komórek tabeli, trzeba wygenerować nową tabelę wewnątrz drugiej komórki tabeli. Można również renderować @item.Name jako span/div i styl, który tworzy iluzję zagnieżdżonego stołu (jsFiddle example).

+0

Stworzyłem stolik wewnątrz oryginalnego stołu, a to dało mi prawie to, czego potrzebuję .. –

-1

Jeśli rozumiem Twoje pytanie, to prawdopodobnie chcesz, aby to zrobić:

@foreach(var permisionMag in Model.PermisionManagement) { 
    <tr> 
    <td rowspan="@permisionMag.TechnologyTypes.Count()">@permisionMag.Name</td> 

    @{int i = 0; 
    @foreach (var item in permisionMag.TechnologyTypes.OrderBy(a => a.Name)) { 
     <td class="f"> 
      @(i+1) @item.Name 
      i = i + 1; 
     </td> 
     </tr> 
     <tr> 
     } 
    </tr> 
    } 
} 

Należy jednak zasadniczo zbudować coś takiego:

---------------- 
| Name | Item1 | 
|  | ----- | 
|  | Item2 | 
|  | ----- | 
|  | Item3 | 
|  | ----- | 
|  | Item4 | 
---------------- 
+0

Nie sądzę, że to prawda. Otrzymasz ten html: http://jsfiddle.net/6KJ3m/ – Damien

+0

Hah! Masz rację - zapomniałem moich TR. Zaktualizuj JSFiddle: http://jsfiddle.net/6KJ3m/1/ i zaktualizuj kod teraz –

+0

Myślę, że to jest literówka wolna ... :) –

Powiązane problemy