請問 在範例中【String[] listUnpaged = sampleData.Split('\n');】
為什麼可以用【listUnpaged.ToPagedList(page ?? 1, pageSize);】
而我寫的練習中
為什麼不可以用【datas.ToPagedList(page ?? 1, pageSize);】
這個用法叫什麼?
範例Controller
...略...
const int pageSize = 20;
// retrieve list from database/whereverand
string sampleData = new StreamReader(Server.MapPath("~/App_Data/Names.txt")).ReadToEnd();
String[] listUnpaged = sampleData.Split('\n');
// page the list
var listPaged = listUnpaged.ToPagedList(page ?? 1, pageSize);
練習Controller
...略...
const int pageSize = 20;
// retrieve list from database/whereverand
List<ITAccountModel> datas = com.WEB.ViewModel.DemoVM.Test.TestDatas;
// page the list
var listPaged = X.PagedList.PagedListExtensions.ToPagedList(datas,page ?? 1, pageSize);
X.PagedList.PagedListExtensions.ToPagedList
namespace X.PagedList
{
public static class PagedListExtensions
{
...略...
[AsyncStateMachine(typeof(PagedListExtensions.<ToListAsync>d__7<>))]
public static Task<List<T>> ToListAsync<T>(this IEnumerable<T> superset);
public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> superset, int pageNumber, int pageSize);
public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> superset);
public static IPagedList<T> ToPagedList<T, TKey>(this IQueryable<T> superset, Expression<Func<T, TKey>> keySelector, int pageNumber, int pageSize);
public static IPagedList<T> ToPagedList<T, TKey>(this IEnumerable<T> superset, Expression<Func<T, TKey>> keySelector, int pageNumber, int pageSize);
...略...
}
}
可以的
因為是靜態類別的擴展方法
假如要直接呼叫要帶參數
void Main()
{
const int pageSize = 2;
int page = 1;
// retrieve list from database/whereverand
string sampleData = @"IT幫一號
IT幫二號
IT幫三號";
String[] listUnpaged = sampleData.Split('\n');
// 直接呼叫方式
var listPaged2 = X.PagedList.PagedListExtensions.ToPagedList(listUnpaged,page, pageSize);
}