public MjerePage(int dogadjajId) { InitializeComponent(); BindingContext = model = new MjereViewModel() { DogadjajId = dogadjajId }; }
/// <summary> /// Prikaz zeljene stranice tablice /// </summary> /// <param name="page">Redni broj stranice</param> /// <param name="sort">Redni broj stupca po kojem se sortira</param> /// <param name="ascending">Smjer sortiranje (true za uzlazno)</param> /// <returns></returns> public IActionResult Index(int page = 1, int sort = 1, bool ascending = true) { int pagesize = appSettings.PageSize; var query = ctx.Mjera.AsNoTracking(); int count = query.Count(); var pagingInfo = new PagingInfo { CurrentPage = page, Sort = sort, Ascending = ascending, ItemsPerPage = pagesize, TotalItems = count }; if (page > pagingInfo.TotalItems) { return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages, sort, ascending })); } System.Linq.Expressions.Expression <Func <Mjera, object> > orderSelector = null; switch (sort) { case 1: orderSelector = d => d.SifraMjere; break; case 2: orderSelector = d => d.SifraSastanka; break; case 3: orderSelector = d => d.SifraPrethodneMjere; break; case 4: orderSelector = d => d.Opis; break; case 5: orderSelector = d => d.Datum; break; case 6: orderSelector = d => d.VrijediDo; break; } if (orderSelector != null) { query = ascending ? query.OrderBy(orderSelector) : query.OrderByDescending(orderSelector); } var mjere = query .Select(m => new MjeraViewModel { SifraMjere = m.SifraMjere, SifraSastanka = m.SifraSastanka, SifraPrethodneMjere = m.SifraPrethodneMjere == null ? -1 : m.SifraPrethodneMjere, Opis = m.Opis, Datum = m.Datum, VrijediDo = m.VrijediDo }) .Skip((page - 1) * pagesize) .Take(pagesize) .ToList(); var model = new MjereViewModel { Mjere = mjere, PagingInfo = pagingInfo }; return(View(model)); }