private void populateItemList(int start, int count) { ItemList.Controls.Clear(); ItemList.ColumnNames.Clear(); ItemList.ColumnNames.Add("Icon", "Icon"); HashSet <string> columnNames = new HashSet <string>(); foreach (var result in Current.Context.Report.GetResultElements(start - 1, count)) { ListviewItem lvi = new ListviewItem(); lvi.ID = Control.GetUniqueID("lvi"); lvi.Icon = result.Icon; lvi.Value = result.Value; foreach (var column in result.GetColumnNames()) { columnNames.Add(column); lvi.ColumnValues.Add(column, result.GetColumnValue(column)); } ItemList.Controls.Add(lvi); } foreach (var column in columnNames) { ItemList.ColumnNames.Add(column, column); } Status.Text = string.Format("{0} results found.", Current.Context.Report.ResultsCount()); int noPages = (int)Math.Ceiling((decimal)Current.Context.Report.ResultsCount() / Current.Context.Settings.PageSize); ItemList.CurrentPage = (int)Math.Ceiling((decimal)start / Current.Context.Settings.PageSize); int startpage = noPages > Current.Context.Settings.MaxNumberPages && ItemList.CurrentPage > Current.Context.Settings.MaxNumberPages / 2 ? ItemList.CurrentPage - Current.Context.Settings.MaxNumberPages / 2 : 1; int endpage = Math.Min(startpage + Current.Context.Settings.MaxNumberPages, noPages); if (noPages > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(" Page "); if (startpage > 1) { int newpage = Math.Max(1, startpage - Current.Context.Settings.MaxNumberPages); if (newpage > 1) { ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = "first"; b.Click = "changepage:" + 1; sb.Append(b.RenderAsText()); } ASR.Controls.LinkButton lb = new ASR.Controls.LinkButton(); lb.Header = "..."; lb.Click = "changepage:" + newpage; sb.Append(lb.RenderAsText()); } for (int i = startpage; i <= endpage; i++) { ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = i.ToString(); b.Selected = i == ItemList.CurrentPage; b.Click = "changepage:" + i; sb.Append(b.RenderAsText()); } if (endpage < noPages) { int newpage = Math.Min(noPages, endpage + Current.Context.Settings.MaxNumberPages / 2); ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = "..."; b.Click = "changepage:" + newpage; sb.Append(b.RenderAsText()); if (newpage < noPages) { b = new ASR.Controls.LinkButton(); b.Header = "last"; b.Click = "changepage:" + noPages; sb.Append(b.RenderAsText()); } } Status.Text += sb.ToString(); } Sitecore.Context.ClientPage.ClientResponse.Refresh(ItemList); Sitecore.Context.ClientPage.ClientResponse.Refresh(Status); }
private void PopulateItemList(int start, int count) { ItemList.Controls.Clear(); ItemList.ColumnNames.Clear(); ItemList.ColumnNames.Add("Icon", "Icon"); var columnNames = new HashSet<string>(); foreach (DisplayElement result in Current.Context.Report.GetResultElements(start - 1, count)) { var lvi = new ListviewItem { ID = Control.GetUniqueID("lvi"), Icon = result.Icon, Value = result.Value }; foreach (string column in result.GetColumnNames()) { columnNames.Add(column); lvi.ColumnValues.Add(column, result.GetColumnValue(column)); } ItemList.Controls.Add(lvi); } foreach (string column in columnNames) { ItemList.ColumnNames.Add(column, column); } Status.Text = string.Format("{0} results found.", Current.Context.Report.ResultsCount()); var noPages = (int) Math.Ceiling((decimal) Current.Context.Report.ResultsCount()/Current.Context.Settings.PageSize); ItemList.CurrentPage = (int) Math.Ceiling((decimal) start/Current.Context.Settings.PageSize); int startpage = noPages > Current.Context.Settings.MaxNumberPages && ItemList.CurrentPage > Current.Context.Settings.MaxNumberPages/2 ? ItemList.CurrentPage - Current.Context.Settings.MaxNumberPages/2 : 1; int endpage = Math.Min(startpage + Current.Context.Settings.MaxNumberPages, noPages); const string separator = " "; if (noPages > 0) { var sb = new StringBuilder(" Page "); if (startpage > 1) { int newpage = Math.Max(1, startpage - Current.Context.Settings.MaxNumberPages); if (newpage > 1) { var b = new LinkButton {Header = "first", Click = "changepage:" + 1}; sb.Append(b.RenderAsText()); } var lb = new LinkButton {Header = "...", Click = "changepage:" + newpage}; sb.Append(lb.RenderAsText()); } for (int i = startpage; i <= endpage; i++) { var b = new LinkButton {Header = i.ToString(CultureInfo.InvariantCulture), Selected = i == ItemList.CurrentPage, Click = "changepage:" + i}; b.Style.Add(HtmlTextWriterStyle.Cursor, "pointer"); sb.Append(b.RenderAsText()); sb.Append(separator); } if (endpage < noPages) { int newpage = Math.Min(noPages, endpage + Current.Context.Settings.MaxNumberPages/2); var b = new LinkButton {Header = "...", Click = "changepage:" + newpage}; sb.Append(b.RenderAsText()); if (newpage < noPages) { b = new LinkButton {Header = "last", Click = "changepage:" + noPages}; sb.Append(b.RenderAsText()); } } Status.Text += sb.ToString(); Status.Style.Add(HtmlTextWriterStyle.Cursor, "default"); } Sitecore.Context.ClientPage.ClientResponse.Refresh(ItemList); Sitecore.Context.ClientPage.ClientResponse.Refresh(Status); }
private void populateItemList(int start, int count) { ItemList.Controls.Clear(); ItemList.ColumnNames.Clear(); ItemList.ColumnNames.Add("Icon", "Icon"); HashSet<string> columnNames = new HashSet<string>(); foreach (var result in Current.Context.Report.GetResultElements(start - 1, count)) { ListviewItem lvi = new ListviewItem(); lvi.ID = Control.GetUniqueID("lvi"); lvi.Icon = result.Icon; lvi.Value = result.Value; foreach (var column in result.GetColumnNames()) { columnNames.Add(column); lvi.ColumnValues.Add(column, result.GetColumnValue(column)); } ItemList.Controls.Add(lvi); } foreach (var column in columnNames) { ItemList.ColumnNames.Add(column, column); } Status.Text = string.Format("{0} results found.", Current.Context.Report.ResultsCount()); int noPages = (int)Math.Ceiling((decimal)Current.Context.Report.ResultsCount() / Current.Context.Settings.PageSize); ItemList.CurrentPage = (int)Math.Ceiling((decimal)start / Current.Context.Settings.PageSize); int startpage = noPages > Current.Context.Settings.MaxNumberPages && ItemList.CurrentPage > Current.Context.Settings.MaxNumberPages / 2 ? ItemList.CurrentPage - Current.Context.Settings.MaxNumberPages / 2 : 1; int endpage = Math.Min(startpage + Current.Context.Settings.MaxNumberPages, noPages); if (noPages > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(" Page "); if (startpage > 1) { int newpage = Math.Max(1, startpage - Current.Context.Settings.MaxNumberPages); if (newpage > 1) { ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = "first"; b.Click = "changepage:" + 1; sb.Append(b.RenderAsText()); } ASR.Controls.LinkButton lb = new ASR.Controls.LinkButton(); lb.Header = "..."; lb.Click = "changepage:" + newpage; sb.Append(lb.RenderAsText()); } for (int i = startpage; i <= endpage; i++) { ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = i.ToString(); b.Selected = i == ItemList.CurrentPage; b.Click = "changepage:" + i; sb.Append(b.RenderAsText()); } if (endpage < noPages) { int newpage = Math.Min(noPages, endpage + Current.Context.Settings.MaxNumberPages / 2); ASR.Controls.LinkButton b = new ASR.Controls.LinkButton(); b.Header = "..."; b.Click = "changepage:" + newpage; sb.Append(b.RenderAsText()); if (newpage < noPages) { b = new ASR.Controls.LinkButton(); b.Header = "last"; b.Click = "changepage:" + noPages; sb.Append(b.RenderAsText()); } } Status.Text += sb.ToString(); } Sitecore.Context.ClientPage.ClientResponse.Refresh(ItemList); Sitecore.Context.ClientPage.ClientResponse.Refresh(Status); }