예제 #1
0
		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>";
			}
		}
예제 #2
0
		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();

		}