Heim Backend-Entwicklung C#.Net-Tutorial asp.net Mvc4 verwendet Ajax in Kombination mit einem Paging-Plug-In, um ein aktualisierungsfreies Paging zu erreichen

asp.net Mvc4 verwendet Ajax in Kombination mit einem Paging-Plug-In, um ein aktualisierungsfreies Paging zu erreichen

Jan 10, 2017 pm 02:30 PM

Dieser Artikel ist eine Demo zur Verwendung von Ajax zur Implementierung von aktualisierungsfreiem Paging in mvc4. Zeichnen Sie ihn auf.

Lösungsidee: Das anfängliche Laden der Seitendaten und das seitenweise Laden erfolgen beide über Ajax. Nachdem auf den Seiten-Paging-Link geklickt wurde, wird die aktuelle Seitennummer mithilfe der Ajax-Technologie gesendet der Back-End-Controller Der Back-End-Controller Ruft die Daten der entsprechenden Seite basierend auf der aktuellen Seitennummer und der eingestellten Seitengröße ab. Nachdem der Backend-Controller die Verarbeitung abgeschlossen hat, verwenden Sie die PartialView-Methode, um die Daten an die Teilansicht zurückzugeben, und verwenden Sie ViewBag, um die Gesamtzahl der Datensätze und die Seitengröße zurückzugeben. Ajax lädt den vom Controller zurückgegebenen Teilansichtsinhalt in die Hauptansicht, um ihn über die Rückruffunktion anzuzeigen.

Hinweis: Die spezifische Seitennavigation und der Seitenstil verwenden das kkpager-Plug-in.

1. Hauptansichtscode (zur Anzeige von Daten)

<script src="~/Content/kkpager.js"></script>
 
<table id="result" class="posts block"></table> 
<nav id="kkpager" class="posts block pagination"></nav>
<script type="text/javascript"> 
  $(function () 
  { 
    GetArticlesData(1); 
  }); 
  function getParameter(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
  }
  
  function GetArticlesData(pageIndex) 
  { 
    var ajaxUrl = '/TestDataDB/AjaxPaging?pageIndex=' + pageIndex;
    var ajaxType = 'post'; 
    var ajaxDataType = 'text'; 
    var sucFun = function (data, status) 
    {
      if (data == null && status != "success") 
      { 
        alert("获取数据失败!"); 
        return false; 
      } 
      else
      { 
        $("#result").html(data);
        //定义分页样式 
        var totalCount = parseInt('@ViewBag.TotalCount');
        var pageSize = parseInt('@ViewBag.PageSize'); 
        var pageNo = getParameter('pno');//该参数为插件自带,不设置好,调用数据的时候当前页码会一直显示在第一页
        if (!pageNo) {
          pageNo = 1;
        }
        var totalPages = totalCount % pageSize == 0 ? totalCount / pageSize : (parseInt(totalCount / pageSize) + 1); 
        kkpager.generPageHtml({
          pno: pageNo,
          total: totalPages,
          totalRecords: totalCount,
          mode: 'click',
          click: function (n) {
            this.selectPage(n);//插件自带的方法,手动调用某一页码
            searchPage(n);
            return false;
          }
        });
      } 
    };  
    //ajax参数设置 
    var Option = 
          { 
            url: ajaxUrl, 
            type: ajaxType, 
            dataType: ajaxDataType, 
            cache: false, //设置为 false 将不会从浏览器缓存中加载请求信息。 
            async: true, //(默认: true),所有请求均为异步请求。发送同步请求,请将此选项设置为 false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 
            timeout: 3600, //设置请求超时时间(毫秒)。此设置将覆盖全局设置。 
            error: function () { }, 
            success: sucFun, 
            beforeSend: function () { } 
          }; 
    $.ajax(Option); 
    return false; 
  }  
  //ajax翻页 
  function searchPage(n) 
  { 
    GetArticlesData(n); 
  } 
</script>
Nach dem Login kopieren

2. Teilansichtscode

@model IEnumerable<Test13.Models.TestDataDB>
@{
  ViewBag.Title = "AjaxFenbuView";
}
  <tr>
    <th>
      @Html.DisplayNameFor(model => model.Uid) 
   </th>
    <th>
      @Html.DisplayNameFor(model => model.Uname)
    </th>
    <th>
      @Html.DisplayNameFor(model => model.Upwd)
    </th>
    <th>
      @Html.DisplayNameFor(model => model.Udata)
    </th>
    <th></th>
  </tr>
@foreach (Test13.Models.TestDataDB item in Model)
{
    <tr>
      <td>@item.Uid</td>
      <td>@item.Uname</td>
      <td>@item.Upwd</td>
      <td>@item.Udata</td>
      <td>
        @Html.ActionLink("编辑", "Edit", new { id=item.ID }) |
        @Html.ActionLink("查看详细", "Details", new { id=item.ID }) |
        @Html.ActionLink("删除", "Delete", new { id=item.ID })
      </td>
    </tr>
}
Nach dem Login kopieren

3 🎜>

private readonly int pageSize =1;
   public ActionResult AjaxFenYe()
   {
     ViewBag.PageSize = pageSize;
     ViewBag.TotalCount = db.TestDataDBS.Count();
     return View();
   }
   public ActionResult AjaxPaging(int pageIndex = 1)
   {
     var persons = (from p in db.TestDataDBS orderby p.ID descending select p).Skip((pageIndex - 1) * pageSize).Take(pageSize);
     return PartialView("AjaxFenbuView", persons.ToList());
   }
Nach dem Login kopieren
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt, und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.

Weitere verwandte Artikel zu asp.net Mvc4, die Ajax in Kombination mit dem Paging-Plug-In verwenden, um aktualisierungsfreies Paging zu erreichen, finden Sie auf der chinesischen PHP-Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie C-Compiler der nächsten Ebene hinzu So fügen Sie C-Compiler der nächsten Ebene hinzu Mar 03, 2025 pm 05:44 PM

So fügen Sie C-Compiler der nächsten Ebene hinzu

Was sind die Alternativen zu Null in der C -Sprache Was sind die Alternativen zu Null in der C -Sprache Mar 03, 2025 pm 05:37 PM

Was sind die Alternativen zu Null in der C -Sprache

Methode zum Kopieren von Code nach C -Sprachkompiler Methode zum Kopieren von Code nach C -Sprachkompiler Mar 03, 2025 pm 05:43 PM

Methode zum Kopieren von Code nach C -Sprachkompiler

Ist Null in der modernen Programmierung in der C -Sprache noch wichtig? Ist Null in der modernen Programmierung in der C -Sprache noch wichtig? Mar 03, 2025 pm 05:35 PM

Ist Null in der modernen Programmierung in der C -Sprache noch wichtig?

Welcher C -Sprachkompiler ist besser? Welcher C -Sprachkompiler ist besser? Mar 03, 2025 pm 05:39 PM

Welcher C -Sprachkompiler ist besser?

Was sind die Webversionen von C -Sprach Compilern? Was sind die Webversionen von C -Sprach Compilern? Mar 03, 2025 pm 05:42 PM

Was sind die Webversionen von C -Sprach Compilern?

C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website Zusammenfassung C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website Zusammenfassung Mar 03, 2025 pm 05:41 PM

C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website Zusammenfassung

C Sprachkompilierer -Installations -Tutorial (Computerversion) C Sprachkompilierer -Installations -Tutorial (Computerversion) Mar 03, 2025 pm 05:41 PM

C Sprachkompilierer -Installations -Tutorial (Computerversion)

See all articles