public void BindNewsDataGrid() { int perPage = 10; Query q = new Query(); q.Paging.RecordsPerPage = perPage; q.Paging.RequestedPage = NewsThreadsPage; q.Columns = new ColumnSet( Thread.Columns.K, Thread.Columns.Private, Thread.Columns.GroupPrivate, Thread.Columns.PrivateGroup, Thread.Columns.Subject, Thread.Columns.LastPost, Thread.Columns.TotalComments, Thread.Columns.TotalParticipants, Thread.Columns.TotalWatching, Thread.Columns.IsNews, Thread.Columns.IsReview, Thread.Columns.ParentObjectType, Thread.Columns.ParentObjectK, Thread.Columns.GroupK, Thread.Columns.UsrK, new JoinedColumnSet(Thread.Columns.UsrK, Usr.LinkColumns), Thread.Columns.LastPostUsrK, new JoinedColumnSet(Thread.Columns.LastPostUsrK, Usr.LinkColumns) ); q.OrderBy = new OrderBy(Thread.Columns.DateTime); q.TableElement = new TableElement(TablesEnum.Thread); q.TableElement = new Bobs.Join( q.TableElement, new TableElement(new Column(Thread.Columns.UsrK, Usr.Columns.K)), QueryJoinType.Left, Thread.Columns.UsrK, new Column(Thread.Columns.UsrK, Usr.Columns.K)); q.TableElement = new Bobs.Join( q.TableElement, new TableElement(new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K)), QueryJoinType.Left, Thread.Columns.LastPostUsrK, new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K)); q.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K)); ThreadSet ts = new ThreadSet(q); if (ts.Count > 0) { NewsThreadsPage = ts.Paging.ReturnedPage; NewsDataGrid.DataSource = ts; NewsDataGrid.DataBind(); Query qTot = new Query(); qTot.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K)); qTot.ReturnCountOnly = true; ThreadSet tCount = new ThreadSet(qTot); int endLinks = 4; int midLinks = 4; PageLinkWriter p = new PageLinkWriter(); p.SetLastPage(perPage, tCount.Count); p.CurrentPageForLinks = NewsThreadsPage; p.Zones.Add(new PageLinkWriter.Zone(1, endLinks)); p.Zones.Add(new PageLinkWriter.Zone(p.LastPage - endLinks + 1, p.LastPage)); p.Zones.Add(new PageLinkWriter.Zone(NewsThreadsPage - midLinks, NewsThreadsPage + midLinks)); StringBuilder sb = new StringBuilder(); sb.Append("Pages: "); p.Build(new PageLinkWriter.LinkWriter(NewsPageLinkWriter), new PageLinkWriter.SeperatorWriter(NewsPageSeperatorWriter), sb); NewsPageP.Controls.Clear(); if (p.LastPage > 1) NewsPageP.Controls.Add(new LiteralControl(sb.ToString())); else NewsPageP.Visible = false; } else { NewsDataGrid.Visible = false; NewsPageP.InnerHtml = "<small>No news suggestions</small>"; } }
void BindPhotos() { Query q = new Query(); q.Paging.RecordsPerPage = Vars.GalleryPageSize; q.Paging.RequestedPage = CurrentPage; q.Columns = Templates.Photos.Default.Columns; q.TableElement = Templates.Photos.Default.PerformJoins(new TableElement(TablesEnum.Photo)); q.OrderBy = Photo.DateTimeOrder(OrderBy.OrderDirection.Ascending); q.QueryCondition = new And(new Q(Photo.Columns.GalleryK, GalleryK), Photo.EnabledQueryCondition); PhotoSet ps = new PhotoSet(q); CurrentPage = ps.Paging.ReturnedPage; if (ps.Paging.ShowNoLinks) { PhotoPageLinksP.Visible = false; PhotoPageLinksP1.Visible = false; } else { int endLinks = 5; int midLinks = 4; PageLinkWriter p = new PageLinkWriter(); p.SetLastPage(Vars.GalleryPageSize, CurrentGallery.LivePhotos); p.CurrentPageForLinks = CurrentPage; p.Zones.Add(new PageLinkWriter.Zone(1, endLinks)); p.Zones.Add(new PageLinkWriter.Zone(p.LastPage - endLinks + 1, p.LastPage)); p.Zones.Add(new PageLinkWriter.Zone(CurrentPage - midLinks, CurrentPage + midLinks)); StringBuilder sb = new StringBuilder(); sb.Append("Pages: "); p.Build(new PageLinkWriter.LinkWriter(PageLinkWriter), new PageLinkWriter.SeperatorWriter(PageSeperatorWriter), sb); PhotoPageLinksP.Controls.Clear(); PhotoPageLinksP1.Controls.Clear(); PhotoPageLinksP.Controls.Add(new LiteralControl(sb.ToString())); PhotoPageLinksP1.Controls.Add(new LiteralControl(sb.ToString())); } PhotosDataList.DataSource = ps; PhotosDataList.ItemTemplate = this.LoadTemplate("/Templates/Photos/Default.ascx"); PhotosDataList.DataBind(); }