void BindComments() { if (CommentPage > CurrentThread.LastPage) CommentPage = CurrentThread.LastPage; CommentSet Comments = CurrentThread.GetPagedCommentSet(CurrentThread.CommentsQ, CommentPage); ThreadSubject2.Text = CurrentThread.Subject; if (CurrentThread.TotalComments == 1) CommentsSubjectH1.InnerText = "Comment"; else CommentsSubjectH1.InnerText = "Comments"; if (CurrentThread.IsReview) { InitialCommentH1.InnerText = "Review"; CommentsSubjectH1.InnerText = "Review"; } else if (CurrentThread.IsNews) { InitialCommentH1.InnerText = "News"; CommentsSubjectH1.InnerText = "News"; } SubjectPanel1.Visible = true; SubjectPanel2.Visible = true; if (CommentPage > 1) { InitialCommentPanel.Visible = true; CommentSet csInitial = CurrentThread.GetPagedCommentSet(new Q(Comment.Columns.K, CurrentThread.FirstComment.K), 1); InitialCommentDataList.DataSource = csInitial; InitialCommentDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx"); InitialCommentDataList.DataBind(); ThreadSubject1.Text = CurrentThread.Subject; CommentsSubjectH1.InnerText = "Replies"; SubjectPanel2.Visible = false; } else InitialCommentPanel.Visible = false; if (CurrentThread.ParentObjectType.Equals(Model.Entities.ObjectType.Photo)) { SubjectPanel1.Visible = false; SubjectPanel2.Visible = false; } if (CommentPage==1 && CurrentThread.LastPage==1) { CommentsPageTopHolder.Visible = false; CommentsPageBottomHolder.Visible = false; CommentsPageP1.Visible = false; CommentsPageP2.Visible = false; } else { CommentsPageP1.Visible = true; CommentsPageP2.Visible = true; object prevPage = null; if (CommentPage > 2) prevPage = CommentPage - 1; CommentsNextPageLink1.Enabled = CommentPage < CurrentThread.LastPage; CommentsNextPageLink1.NavigateUrl = ContainerPage.Url.CurrentUrl("c", ((int)(CommentPage + 1)).ToString()) + "#Comments"; CommentsPrevPageLink1.Enabled = CommentPage > 1; CommentsPrevPageLink1.NavigateUrl = ContainerPage.Url.CurrentUrl("c", prevPage) + "#Comments"; CommentsNextPageLink2.Enabled = CommentPage < CurrentThread.LastPage; CommentsNextPageLink2.NavigateUrl = ContainerPage.Url.CurrentUrl("c", ((int)(CommentPage + 1)).ToString()) + "#Comments"; CommentsPrevPageLink2.Enabled = CommentPage > 1; CommentsPrevPageLink2.NavigateUrl = ContainerPage.Url.CurrentUrl("c", prevPage) + "#Comments"; if (!CommentsNextPageLink1.Enabled) CommentsNextPageLink1.CssClass = "DisabledAnchor"; if (!CommentsNextPageLink2.Enabled) CommentsNextPageLink2.CssClass = "DisabledAnchor"; if (!CommentsPrevPageLink1.Enabled) CommentsPrevPageLink1.CssClass = "DisabledAnchor"; if (!CommentsPrevPageLink2.Enabled) CommentsPrevPageLink2.CssClass = "DisabledAnchor"; CurrentThreadUsr = null; doneFirstUnreadPage = false; doneViewComments = false; int endLinks = 3; int midLinks = 4; int midLinksUnread = 2; PageLinkWriter p = new PageLinkWriter(); p.LastPage = CurrentThread.LastPage; p.CurrentPageForLinks = CommentPage; p.Zones.Add(new PageLinkWriter.Zone(1, endLinks)); p.Zones.Add(new PageLinkWriter.Zone(CurrentThread.LastPage - endLinks + 1, CurrentThread.LastPage)); if (FirstUnreadPage > 0) { p.Zones.Add(new PageLinkWriter.Zone(FirstUnreadPage - midLinksUnread, FirstUnreadPage + midLinksUnread - 1)); } p.Zones.Add(new PageLinkWriter.Zone(CommentPage - midLinks, CommentPage + midLinks)); StringBuilder sb = new StringBuilder(); sb.Append("Pages: "); p.Build(new PageLinkWriter.LinkWriter(PageLinkWriter), new PageLinkWriter.SeperatorWriter(PageSeperatorWriter), sb); CommentsPageP1.Controls.Clear(); CommentsPageP2.Controls.Clear(); CommentsPageP1.Controls.Add(new LiteralControl(sb.ToString())); CommentsPageP2.Controls.Add(new LiteralControl(sb.ToString())); } if (CommentPage * Vars.CommentsPerPage > CurrentThread.TotalComments) CurrentThread.SetThreadUsr(CurrentThread.TotalComments); else CurrentThread.SetThreadUsr(CommentPage * Vars.CommentsPerPage); CommentsDataList.DataSource = Comments; CommentsDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx"); CommentsDataList.DataBind(); }
public override void DataBind() { if (CurrentThread == null || CurrentThread.TotalComments == 0) { this.uiCommentsPanel.Style["display"] = "none"; } else { if (CurrentPage > CurrentThread.LastPage) CurrentPage = CurrentThread.LastPage; CommentSet Comments = CurrentThread.GetPagedCommentSet(CurrentThread.CommentsQ, CurrentPage); this.uiCommentsPanel.Style["display"] = ""; this.CommentsSubjectH1InnerText = "Comments"; if (CurrentThread.IsReview) { InitialCommentH1.InnerText = "Review"; this.CommentsSubjectH1InnerText = "Review"; } else if (CurrentThread.IsNews) { InitialCommentH1.InnerText = "News"; this.CommentsSubjectH1InnerText = "News"; } if (CurrentPage > 1) { uiInitialCommentPanel.Style["display"] = ""; CommentSet csInitial = CurrentThread.GetPagedCommentSet(new Q(Comment.Columns.K, CurrentThread.FirstComment.K), 1); uiInitialCommentDataList.DataSource = csInitial; uiInitialCommentDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx"); uiInitialCommentDataList.DataBind(); this.CommentsSubjectH1InnerText = "Replies"; } else uiInitialCommentPanel.Style["display"] = "none"; if (CurrentPage == 1 && CurrentThread.LastPage == 1) { CommentsPageP2.Visible = false; CommentsPageP1.Visible = false; } else { CommentsPageP2.Visible = true; CommentsPageP1.Visible = true; object prevPage = null; if (CurrentPage > 2) prevPage = CurrentPage - 1; CommentsNextPageLink1.Enabled = CurrentPage < CurrentThread.LastPage; CommentsNextPageLink1.NavigateUrl = GetCommentPageUrl(CurrentPage + 1); CommentsPrevPageLink1.Enabled = CurrentPage > 1; CommentsPrevPageLink1.NavigateUrl = GetCommentPageUrl(prevPage); CommentsNextPageLink.Enabled = CurrentPage < CurrentThread.LastPage; CommentsNextPageLink.NavigateUrl = GetCommentPageUrl(CurrentPage + 1); CommentsPrevPageLink.Enabled = CurrentPage > 1; CommentsPrevPageLink.NavigateUrl = GetCommentPageUrl(prevPage); CommentsNextPageLink1.CssClass = CommentsNextPageLink1.Enabled ? "" : "DisabledAnchor"; CommentsNextPageLink.CssClass = CommentsNextPageLink.Enabled ? "" : "DisabledAnchor"; CommentsPrevPageLink1.CssClass = CommentsPrevPageLink1.Enabled ? "" : "DisabledAnchor"; CommentsPrevPageLink.CssClass = CommentsPrevPageLink.Enabled ? "" : "DisabledAnchor"; CurrentThreadUsr = null; doneFirstUnreadPage = false; doneViewComments = false; int endLinks = 3; int midLinks = 4; int midLinksUread = 2; PageLinkWriter p = new PageLinkWriter(); p.LastPage = CurrentThread.LastPage; p.CurrentPageForLinks = CurrentPage; p.Zones.Add(new PageLinkWriter.Zone(1, endLinks)); p.Zones.Add(new PageLinkWriter.Zone(CurrentThread.LastPage - endLinks + 1, CurrentThread.LastPage)); if (FirstUnreadPage > 0) { p.Zones.Add(new PageLinkWriter.Zone(FirstUnreadPage - midLinksUread, FirstUnreadPage + midLinksUread - 1)); } 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); CommentsPagesP1.Controls.Clear(); CommentsPagesP2.Controls.Clear(); CommentsPagesP1.Controls.Add(new LiteralControl(sb.ToString())); CommentsPagesP2.Controls.Add(new LiteralControl(sb.ToString())); } if (CurrentPage*Vars.CommentsPerPage > CurrentThread.TotalComments) CurrentThread.SetThreadUsr(CurrentThread.TotalComments); else CurrentThread.SetThreadUsr(CurrentPage*Vars.CommentsPerPage); CommentsDataList.DataSource = Comments; CommentsDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx"); CommentsDataList.DataBind(); } }
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(); }