2017-11-21 12 views
1

私は左の上下ボタンでリストを持っています。どのように "下"ボタンと "上"ボタンを使用して最後のテーブルの行だけで最初のテーブル行を作る?これは私のコードです。上下の矢印のMVC asp.net

@foreach (var item in Model) 
    {  
     <tr> 
      <td> 
       <a href="#" class="up">Up</a> | 
       <a href="#" class="down">Down</a> 
      </td> 
      <td class="personName"> 
       @Html.DisplayFor(modelItem => item.Name) 
      </td> 
      <td class="personOrder"> 
       @Html.DisplayFor(modelItem => item.Order) 
      </td> 
      <td> 
       @Html.ActionLink("Edit", "Edit", new { id = item.ID }) | 
       @Html.ActionLink("Details", "Details", new { id = item.ID }) | 
       @Html.ActionLink("Delete", "Delete", new { id = item.ID }) 
      </td> 
      <td> 
       <input type="hidden" class ="personID" [email protected] /> 
      </td> 
     </tr> 
    } 
+0

アイテムインデックスと条件を使用します。 –

答えて

0

あなたが簡単に使用することができますがIEnumerableさんFirst()Last()これを動作させるには

@foreach (var item in Model) 
{  
    <tr> 
     <td> 
      @if(item != Model.First()) 
      { 
       <a href="#" class="up">Up</a> 
      } 
      @if(item != Model.Last()) 
      { 
       <a href="#" class="down">Down</a> 
      } 
     </td> 
     <td class="personName"> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td class="personOrder"> 
      @Html.DisplayFor(modelItem => item.Order) 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id = item.ID }) | 
      @Html.ActionLink("Details", "Details", new { id = item.ID }) | 
      @Html.ActionLink("Delete", "Delete", new { id = item.ID }) 
     </td> 
     <td> 
      <input type="hidden" class ="personID" [email protected] /> 
     </td> 
    </tr> 
} 
0

変数を定義すると、現在のインデックスの追跡に役立ちます。現在、現在の要素を簡単に識別できるようになりました。 forループも使用できます。あなたはまた、CSS first-child使用することができます

@{int x = 0;} 
@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @if (x != 0) 
      { 
       <a href="#" class="up">Up</a> 
      } 
      @if (x != Model.Count() - 1) 
      { 
       <a href="#" class="down">Down</a> 
      } 
      x++; 
     </td> 
     <td class="personName"> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td class="personOrder"> 
      @Html.DisplayFor(modelItem => item.Order) 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id = item.ID }) | 
      @Html.ActionLink("Details", "Details", new { id = item.ID }) | 
      @Html.ActionLink("Delete", "Delete", new { id = item.ID }) 
     </td> 
     <td> 
      <input type="hidden" class="personID" [email protected] /> 
     </td> 
    </tr> 
} 
0

あなたの質問は、 "物事がレンダリングすべきか" がより関連すると思われるので、:

TABLE TR:first-child a.up{display:none;} 
 
TABLE TR:last-child a.down{display:none;}
<table> 
 
    <tr> 
 
    <td> 
 
     <a href="#" class="up">Up</a> 
 
     <a href="#" class="down">Down</a> 
 
    </td> 
 
    <td> 
 
     anything 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <a href="#" class="up">Up</a> 
 
     <a href="#" class="down">Down</a> 
 
    </td> 
 
    <td> 
 
     anything 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <a href="#" class="up">Up</a> 
 
     <a href="#" class="down">Down</a> 
 
    </td> 
 
    <td> 
 
     anything 
 
    </td> 
 
    </tr> 
 
</table>

関連する問題