/// <summary>
    /// Sets page size dropdown list according to PageSize property.
    /// </summary>
    private void SetPageSize(bool forceReload)
    {
        if ((drpPageSize.Items.Count == 0) || forceReload)
        {
            string currentPagesize = CurrentPageSize.ToString();

            if (!PagerLoaded && (PagerMode != UniPagerMode.Querystring))
            {
                currentPagesize = DefaultPageSize.ToString();
            }

            drpPageSize.Items.Clear();

            PageSizeOptionsData pageSizeOptionsData;

            if (!TryParsePageSizeOptions(PageSizeOptions, out pageSizeOptionsData))
            {
                EventLogProvider.LogEvent(EventType.ERROR, "UIPager", "ParseCustomOptions", "Could not parse custom page size options: '" + PageSizeOptions + "'. Correct format is values separated by comma.");
                TryParsePageSizeOptions(DEFAULT_PAGE_SIZE_OPTIONS, out pageSizeOptionsData);
            }

            // Add default page size if not present
            if ((DefaultPageSize > 0) && !pageSizeOptionsData.Options.Contains(DefaultPageSize))
            {
                pageSizeOptionsData.Options.Add(DefaultPageSize);
            }

            // Sort list of page sizes
            pageSizeOptionsData.Options.Sort();

            FillPageSizeDropdown(pageSizeOptionsData, currentPagesize);
        }
    }
示例#2
0
    /// <summary>
    /// Sets page size dropdown list according to PageSize property.
    /// </summary>
    private void SetPageSize(bool forceReload)
    {
        if ((drpPageSize.Items.Count == 0) || forceReload)
        {
            string currentPagesize = CurrentPageSize.ToString();
            if (!PagerLoaded)
            {
                currentPagesize = DefaultPageSize.ToString();
            }

            drpPageSize.Items.Clear();

            string[] sizes = PageSizeOptions.Split(',');
            if (sizes.Length > 0)
            {
                List <int> sizesInt = new List <int>();

                // Indicates if contains 'Select ALL' macro
                bool containsAll = false;
                foreach (string size in sizes)
                {
                    if (size.ToUpper() == UniGrid.ALL)
                    {
                        containsAll = true;
                    }
                    else
                    {
                        sizesInt.Add(ValidationHelper.GetInteger(size.Trim(), 0));
                    }
                }

                // Add default page size if not pressents
                if ((DefaultPageSize > 0) && !sizesInt.Contains(DefaultPageSize))
                {
                    sizesInt.Add(DefaultPageSize);
                }

                // Sort list of page sizes
                sizesInt.Sort();

                ListItem item = null;

                foreach (int size in sizesInt)
                {
                    // Skip zero values
                    if (size != 0)
                    {
                        item = new ListItem(size.ToString());
                        if (item.Value == currentPagesize)
                        {
                            item.Selected = true;
                        }
                        drpPageSize.Items.Add(item);
                    }
                }

                // Add 'Select ALL' macro at the end of list
                if (containsAll)
                {
                    item = new ListItem(GetString("general.selectall"), "-1");
                    if (currentPagesize == "-1")
                    {
                        item.Selected = true;
                    }
                    drpPageSize.Items.Add(item);
                }
            }
        }
    }