ASP.NET Web API教程(四) 分頁查詢

來源:互聯網
上載者:User

  看過前三篇文章的朋友,應該對Asp.net Web api 有個初步的瞭解,起碼瞭解了web api的編碼方式。那麼這一篇就分享一下web api中的分頁。話不多說,直接上硬貨。
  接下來的內容都是在上一篇中的擴充,所以找不到的資料可以從上一篇中下載到。
  首先增加支援分頁的API方法

public IEnumerable<UserInfo> GetUserInfos(int pageindex, int size)
        {
            return bll.Get().Skip((pageindex - 1) * size).Take(size);
        }

增加一個新頁面
引入js

<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="Scripts/knockout-2.1.0.js" type="text/javascript"></script>

編寫資料迭代顯示模板

<ul data-bind="template: {name: 'userinfoTemplate', foreach: userinfos}">
        </ul>

UL為資料迭代容器模板

<script id="userinfoTemplate" type="text/html">
            <li class="userinfo">
                    <div class="info">                        
                        <strong><span data-bind="text: Name"></span></strong>
                       <span data-bind="text: Age"></span>
                    </div>
            </li>
        </script>

Script id=’ userinfoTemplate’為資料項目模板

編寫擷取分頁操作面板

<fieldset>
<label>第</label><input type="text" id="pageIndex" /><label>頁</label><br />
<label>每</label><input type="text" id="pageSize" /><label>條一頁</label><br />
<input type="button" value="擷取" id="getButton" />
</fieldset>

開始編寫js根據輸入的頁碼和每頁的數量擷取

<script type="text/javascript">
        viewModel = {
            userinfos: ko.observableArray([])
        };
        ko.applyBindings(viewModel);
        $("#getButton").click(function () {
            viewModel.userinfos([]);
            var pageSize = $('#pageSize').val();
            var pageIndex = $('#pageIndex').val();
            var url = "/api/userinfo?pageindex=" + pageIndex + '&size=' + pageSize;

            $.getJSON(url, function (data) {
                // 根據路徑得到資料
                viewModel.userinfos(data);
            });

            return false;

        });   
    </script>

 

最終運行得到結果擷取第一頁,每一頁1條的情況下

擷取第一頁,每頁2條的情況下

本篇源碼下載:

/Files/risk/web api 4/MvcApplication1.rar

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.