2013-08-13 31 views
6

Tôi đã theo bảng dưới đây: -Làm thế nào để tạo ra các tế bào bên trong lồng nhau cùng một bảng 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> 

Nhưng hiện tôi cần cột thứ hai đã lồng hàng thay vì hiển thị các hàng bên trong TD giống nhau không? bất kỳ lời khuyên nào về điều này?

+0

Bạn muốn các hàng lồng nhau ở đâu chính xác? Bạn có thể cung cấp một số HTML chung được thiết lập theo cách bạn muốn mã thực tế của mình không? – matthewpavkov

Trả lời

1

Bạn có thể sử dụng rowspan trên cột đầu tiên :

<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

Tôi hy vọng điều đó sẽ hữu ích.

+0

tôi mệt mỏi ở trên nhưng không làm việc các hàng sẽ được lồng nhau bên trong mỗi người khác. –

+0

Bây giờ nó hoạt động với thử nghiệm này (i> 1) – Damien

1

Bạn không thể tạo trực tiếp ô bảng, bạn phải tạo bảng mới bên trong ô bảng thứ hai. Bạn cũng có thể hiển thị @item.Name làm khoảng/div và kiểu để tạo ảo ảnh của bảng lồng nhau (jsFiddle example).

+0

tôi đã tạo ra một bảng bên trong bảng gốc, và nó đã cho tôi gần như những gì tôi cần .. –

-1

Nếu tôi hiểu câu hỏi của bạn, sau đó bạn có thể muốn làm điều này:

@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> 
    } 
} 

Nhưng về cơ bản nên xây dựng cho bạn một cái gì đó như thế này:

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

Tôi không nghĩ rằng đó là đúng. Bạn sẽ nhận được html này: http://jsfiddle.net/6KJ3m/ – Damien

+0

Hah! Bạn đã đúng - Tôi đã quên TRs của mình. Cập nhật JSFiddle: http://jsfiddle.net/6KJ3m/1/ và cập nhật mã ngay bây giờ –

+0

Tôi nghĩ rằng đó là lỗi miễn phí ... :) –

Các vấn đề liên quan