예제 #1
0
        //private void openReport(NameValueCollection nvc)
        //{
        //  var id = nvc["id"];
        //  if (string.IsNullOrEmpty(id))
        //  {
        //    return;
        //  }
        //  var director = new SCDirector("master", "en");
        //  if (!director.ObjectExists(id)) return;
        //  var rItem = director.GetObjectByIdentifier<ReportItem>(id);
        //  foreach (string key in nvc.Keys)
        //  {
        //    if (key.Contains("^"))
        //    {
        //      var item_parameter = key.Split('^');
        //      var g = new Guid(item_parameter[0]);
        //      var ri = rItem.FindItem(g);
        //      if (ri != null)
        //      {
        //        ri.SetAttributeValue(item_parameter[1], nvc[key]);
        //      }
        //    }
        //  }
        //  Current.Context.ReportItem = rItem;
        //  Current.Context.Report = null;
        //  this.updateInterface(null);
        //}
        private void populateItemList(int start, int count)
        {
            this.ItemList.Controls.Clear();
              this.ItemList.ColumnNames.Clear();
              this.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 (var column in result.GetColumnNames())
            {
              columnNames.Add(column);
              lvi.ColumnValues.Add(column, result.GetColumnValue(column));
            }
            this.ItemList.Controls.Add(lvi);
              }
              foreach (var column in columnNames)
              {
            this.ItemList.ColumnNames.Add(column, column);
              }

              this.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);
              this.ItemList.CurrentPage = (int)Math.Ceiling((decimal)start / Current.Context.Settings.PageSize);

              var startpage = noPages > Current.Context.Settings.MaxNumberPages &&
                      this.ItemList.CurrentPage > Current.Context.Settings.MaxNumberPages / 2
                        ? this.ItemList.CurrentPage - Current.Context.Settings.MaxNumberPages / 2
                        : 1;
              var endpage = Math.Min(startpage + Current.Context.Settings.MaxNumberPages, noPages);
              if (noPages > 0)
              {
            var sb = new StringBuilder("&nbsp;&nbsp; Page ");
            if (startpage > 1)
            {
              var 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 (var i = startpage; i <= endpage; i++)
            {
              var b = new LinkButton
            { Header = i.ToString(), Selected = i == this.ItemList.CurrentPage, Click = "changepage:" + i };
              sb.Append(b.RenderAsText());
            }
            if (endpage < noPages)
            {
              var 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());
              }
            }
            this.Status.Text += sb.ToString();
              }

              Context.ClientPage.ClientResponse.Refresh(this.ItemList);

              Context.ClientPage.ClientResponse.Refresh(this.Status);
        }
예제 #2
0
        private LinkButton CreateLinkButton(string text)
        {
            LinkButton lb = new LinkButton();
            lb.Text = text;
            lb.AntiAliasText = false;
            lb.ForeColor = Color.RoyalBlue;
            lb.UnderlineOnHover = true;
            lb.AutoSize = true;
            lb.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            lb.Cursor = Cursors.Hand;
            lb.TextAlign = ContentAlignment.MiddleCenter;

            return lb;
        }