2013-02-14 2 views
1

У меня есть эта функция JQuery переставить список, основанный на DateTime, когда пользователь нажмет сортировать ссылкусписок Изменение заказа с датой внутри View

$('#sort-date-added').click(function() { 
      '@Model.HomeProducts' = '@Model.HomeProducts.OrderBy(x => x.LastModifiedDate)'; 
      alert('xx'); 
     $.each('@Model.HomeProducts', function (index) { 
      alert('@Model.HomeProducts.ElementAt(index).Name'); 
      //x++; 
     }); 
    }); 

Это ссылка сортировать

<p><a id="sort-date-added" href="#">Sort by Date Added</a></p> 

но это Безразлично Не работайте, кто-нибудь знает, почему, может ли кто-нибудь помочь в этом решении или в лучшем решении?

+0

$ .each ('@ Model.HomeProducts', function (key, index) {}? – CR41G14

+0

Что представляет собой ключ? –

+0

@BrianMains Я держу список упорядоченным по алфавиту и во время выполнения, если пользователь нажал сортировать по дате Я изменю сортировку, которую нужно упорядочить по времени, эта строка будет заказывать их по дате –

ответ

0

Если бы я тебя, я хотел бы сделать следующее:

Главная Вид:

<p><a id="sort-date-added" href="#">Sort by Date Added</a></p> 
<div id="list"> 
    @Html.Partial("_ProductsList", Model) 
</div> 

Частичный вид "_ProductsList":

<ul> 
@foreach(var item in Model.HomeProducts) 
{ 
    <li>@item.Name</li> 
} 
</ul> 

Js:

$(document).ready(function(){ 

    var ajaxOrderByDate = $.post(
          'Home/GetOrderedProducts/', { 
           orderType: 1 
          }); 

    $('#sort-date-added').on('click', function() { 
      ajaxOrderByDate.done(function(data){ 
          $('#list').html(data); 
         }) 
         .fail(function(){ 
          console.log("error"); 
         }); 
    } 

}); 

ASP.NET в HomeController или whateve r:

[HttpPost] 
public ActionResult GetOrderedProducts(int orderType) 
{ 
    switch(orderType) 
    { 
      case 1: 
      //order by date 
    } 

    return PartialView("_ProductsList", Model); 
} 

Вы можете сделать перечисление для полей, которые вы заказываете.

В принципе идея состоит в том, чтобы создать частичный вид, содержащий список, и упорядочить элементы этого списка на сервере. Вы обновляете представление, реинжинируя только список через ajax. Я думаю, что это лучший подход.

Смежные вопросы