1
我有以下問題。我想做一個很好的分頁,我不想從WebService的所有記錄下載到我的應用程序。尋呼.net MVC - 無需從WebService下載所有記錄
控制器代碼:
public ActionResult Vacations(int? page)
{
int pageNumber = page ?? 1;
int quantity = 5;
using (MyWebService.MyWebServiceClient client = new MyWebService.MyWebServiceClient())
{
var vacations = client.GetUserAbsence(SessionManager.CurrentToken, quantity, pageNumber);
var onePageOfVacations = vacations.ToPagedList(pageNumber, quantity);
ViewBag.OnePageOfVacations = onePageOfVacations;
}
return View();
}
查看代碼:
<h2>Vacations</h2>
<div>
<table class="table tablesorter table-striped">
<thead>
<tr>
<th>Data od</th>
<th>Data do</th>
<th>Ilość dni</th>
</tr>
</thead>
<tbody>
@{
foreach (var v in ViewBag.OnePageOfVacations)
{
<tr>
<td>@v.From_Date</td>
<td>@v.To_Date</td>
<td>@v.Element_Name</td>
</tr>
}
}
</tbody>
<tfoot>
<tr>
<th>Data od</th>
<th>Data do</th>
<th>Ilość dni</th>
</tr>
</tfoot>
</table>
</div>
<!-- output a paging control that lets the user navigation to the previous page, next page, etc -->
@Html.PagedListPager((IPagedList)ViewBag.OnePageOfVacations, page => Url.Action("Vacations", new { page }))
我在web服務 「GetUserAbsence()」,這回我只有這個數字的,我需要有記錄的方法。現在我只有一個頁面,我無法顯示其他結果。有我的問題 - 如何將此解決方案與PagedList連接起來,或者如何在此解決方案上創建新的分頁?
你需要使用ajax或類似的東西,否則視圖無法更新,它完全是靜態的,不能回調服務器並告訴它發送更多的數據。我沒有太多時間向您發送更多信息,但這可能有助於http://stackoverflow.com/questions/8517071/send-json-data-via-post-ajax-and-receive-json-response-from- controller-mvc – sringland
如果知道記錄總數,可以使用'StaticPagedList',例如'ViewBag.OnePageOfVacations = new StaticPagedList(vacations,pageNumber,quantity,totalItems);'(可能意味着您需要第二個服務方法返回'.Count()',但這應該是非常快的(或者你可以修改方法返回一個包含記錄和計數的對象) –
請從評論中作出答案。謝謝Stephen!It Works! – Sowiarz