konstrukcja tabeli foreach (określona liczba kolumn)

0

Witam serdecznie napotkałem problem odnośnie wyświetlania tabeli w widoku asp.net. Robię stronę związaną z kapslami po piwie jedną kolumną ma być zdjęcie a pod nim 3 linki. Zależy mi żeby maksymalna liczba kolumn wynosiła 5 i przechodziło do nowej lini ale w pętli for each mam problem ze wstawieniem </tr> w odpowiedni sposób zrobiłem coś takiego i nieby działa ale sypie ostrzeżenia i nie wiem czy we wszystkich przeglądarkach to będzie wyświetlało poprawnie:

 <h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    
@{
    int i = 0;
}

@foreach (var item in Model) {
    i++;
    if((i%6)==0)
    { 
   <tr></tr>
        <td>
           <img src="@item.zdjecie" height="200px" width="200px" /><br />
            @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
            @Html.ActionLink("Details", "Details", new { id = item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.Id },new { onclick = "return confirm('Czy jesteś pewien?');" })
            
        </td>
       
    
    }
    else {  <td>
           <img src="@item.zdjecie" height="200px" width="200px" /><br />
            @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
            @Html.ActionLink("Details", "Details", new { id = item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.Id },new { onclick = "return confirm('Czy jesteś pewien?');" })
            
        </td>}
  
        
}

</table>

z góry dziękuję za pomoc.

0
foreach
{
<tr>
<td>tu zdjęcie i linki</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
}

Albo weź jakoś rozrysuj jak chcesz aby to wyglądało bo nie wiem co ty tworzysz.

0

72decaabb9.png

Dokładnie tak jak wygląda to co napisałem u góry daje taki właśnie efekt no i fajnie tylko chodzi mi o to że u mnie jest taka struktura tabeli:

zdj+linki zdj+linki zdj+linki zdj+linki zdj+linki

Czyli kolumny są poza wierszem i na chromie to działa i zastanawiam się czy nie będzie to jakoś sypać w innych przeglądarkach?

3

Np. coś takiego, pisane na szybko więc jakiś warunek może wymagać drobnych korekt ewentualnie:

@for(var i = 0; i < Model.Count; i += 5)
{
        <tr>
	        foreach(var item in Model.Skip(i).Take(5))
	        {
			        <td>
				        <img src="@item.zdjecie" height="200px" width="200px" /><br />
				        @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
				        @Html.ActionLink("Details", "Details", new { id = item.Id }) |
				        @Html.ActionLink("Delete", "Delete", new { id = item.Id },new { onclick = "return confirm('Czy jesteś pewien?');" })
			        </td>
	        }
        </tr>
}

To co robisz z wstawianiem </tr> jest kompletnie niepoprawne jeśli chodzi o strukturę HTML, znacznik nie może być używany jak znak nowej linii dlatego dostajesz ostrzeżenia i to, że Chrome to przepuszcza tak jak Ty chcesz to tylko ich dziwna dobra wola.

1 użytkowników online, w tym zalogowanych: 0, gości: 1