2014-12-23 2 views
2

Я использую выгружаемый список и вызываю ajax, когда нажимаю на следующий, который работает. Проблема заключается в том, что я нажимаю на предыдущий или номер страницы, который не вызывает ajax. Мне нужно использовать ajax-вызов в paged List, а не мой собственный аякс.Как использовать ajax в pagedList

public ActionResult ApplicantsRecord(int? page) 
{ 
     List<ApplicantsRecord> ar = new List<ApplicantsRecord>(); 
     ApplicantsRecord a = new ApplicantsRecord(); 
     List<ApplicantsRecordDetailViewModel> apvmlist = new List<ApplicantsRecordDetailViewModel>(); 
     ApplicantsRecordDetailViewModel apvm = new ApplicantsRecordDetailViewModel(); 
     //ar = db.ApplicantsRecords.ToList(); 
     var groupedAR = db.ApplicantsRecords.GroupBy(x => x.SessionId) 
           .Select(y => new 
           { 
            SessionId = y.Key, 
            ApplicationsRecords = y.FirstOrDefault(), 
           }).ToList().OrderByDescending(x => x.ApplicationsRecords.LoginDate); 

     foreach (var i in groupedAR) 
     { 
      ar.Add(i.ApplicationsRecords); 
     } 
     int pageNumber = (page ?? 1);   
     if(Request.IsAjaxRequest()) 
     { 
      return PartialView("_ApplicantsRecord", ar.ToPagedList(pageNumber, 10)); 
     } 
     return View(ar.ToPagedList(pageNumber, 10)); 
} 

код зрения

<div id="targetContainer"> 
    @Html.Partial("_ApplicantsRecord",Model); 
</div> 

код АЯКС

var npage =2; 
$(document).ready(function() { 
$('#container').click(function() { 
      $.ajax({ 
       type: "GET", 
       traditional: true, 
       cache: false, 
       url: '/Testing/ApplicantsRecord/', 
       data:{page:npage}      
      }) 
      .success(function (html) { 
       UpdatePage(html);     
       }) 
      .error(function() {     
      }); 
      return false; 
     }); 
    }); 
function UpdatePage(html) { 
    $("#targetContainer").empty().html(html); 
    newpage = $('#newpage').val();  
    npage = parseInt(npage) 
    npage = npage + 1; 
    $('#newpage').val(npage);   
} 

и вот частичный вид на

+0

вы получили какую-либо ошибку с консоли? – faby

+0

Нет, я не получил никаких ошибок в работе. Мне нужно что-то еще. –

+0

Является ли ваш запрос ajax всегда вызываемым со страницей: '2'? – faby

ответ

2

я получил его я не использовал JQuery ненавязчивый в моем Jquery пачке i downlloaded jquery unobtrusive ui с использованием пакета Nuget и добавлен в новый пакет затем включить этот пакет в моем _layout зрения вместо JQuery сверток он начал работать

и изменил подданный код вида на этот один

@model IPagedList<ApplicantsRecord> 


    <div id="container"> 
     <div class="pagedList"> 
      @Html.PagedListPager(Model, page => Url.Action("ApplicantsRecord", new { page = page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() 
    { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "targetContainer" 

    })) 
     </div> 
    </div> 
    <table> 
     <thead> 
      <tr> 
       <th width="200" align="center">User Name</th> 
       <th width="200" align="center">Login Date Time</th> 
       <th width="100" align="center">Details</th> 

     </tr> 
    </thead> 
    <tbody> 
     @foreach (var group in Model.GroupBy(x => x.UserName)) 
     { 
      <tr class="group-header"> 
       <td colspan="6"> 
        <span class="label label-info">Applicant : @group.Key</span> 
        <span class="label label-success">Total Test Taken: @group.Count()</span> 
       </td> 

      </tr> 
      foreach (var item in group) 
      { 
       <tr> 
        <td>@Html.DisplayFor(modelItem => item.UserName)</td> 
        <td>@Html.DisplayFor(modelItem => item.LoginDate)</td> 
        <td>@Html.ActionLink("Details", "ApplicantsRecordDetail", new { id = item.SessionId })</td> 

       </tr> 

      } 
     } 
</table> 

и код зрения на этот один

@model IPagedList<ApplicantsRecord> 
@using PagedList.Mvc; 
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" /> 

@{ 
    ViewBag.Title = "ApplicantsRecord"; 
} 

<h2>ApplicantsRecord</h2> 
<p> 
    @Html.ActionLink("Back To List", "QuestionDetail") | 
    @Html.ActionLink("Live View ", "LiveView") 

</p> 
    <div id="targetContainer"> 
     @Html.Partial("_ApplicantsRecord",Model) 
    </div>