示例#1
0
        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("&nbsp;&nbsp; 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);
        }
示例#2
0
        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 = "&nbsp;&nbsp;";
            if (noPages > 0)
            {
                var sb = new StringBuilder("&nbsp;&nbsp; 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);
        }
示例#3
0
        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("&nbsp;&nbsp; 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);
        }