Управление подкачкой страниц ASP.NET [закрывается]

эта строка кода может быть более простым способом выполнить одно и то же:

 public class ProductConfiguration : EntityTypeConfiguration<Product>
    {
        public ProductConfiguration()
        {
            this.Property(m => m.Price).HasPrecision(10, 2);
        }
    }
14
задан Chris S 16 March 2009 в 23:53
поделиться

4 ответа

Я ожидал больше ответов, но похоже, что много людей просто делает их собственное. Я нашел достойный, который сохраняется довольно часто на codeproject.com

cp

, Это - не совсем то же как stackoverflow.com один. Было бы хорошо, если бы было достойное управление с открытым исходным кодом, которое имело множество различных выходных опций.

4
ответ дан 1 December 2019 в 13:22
поделиться

Это довольно легко к самокрутке. Я создал простой пользовательский элемент управления на основе пейджера переполнения стека с двумя свойствами...

  1. Общее количество страниц, доступных согласно базовым данным
  2. Количество ссылок для показа

, выбранная страница определяется путем чтения строки запроса. Самая сложная задача изменяла URL с новым номером страницы. Этот метод использует параметр строки запроса 'p' для определения который страница отобразиться...

string getLink(int toPage)
{
    NameValueCollection query = HttpUtility.ParseQueryString(Request.Url.Query);
    query["p"] = toPage.ToString();

    string url = Request.Path;

    for(int i = 0; i < query.Count; i++)
    {
        url += string.Format("{0}{1}={2}", 
            i == 0 ? "?" : "&", 
            query.Keys[i], 
            string.Join(",", query.GetValues(i)));
    }

    return url;
}

А простая формула для определения диапазона номеров страниц для показа...

int min = Math.Min(Math.Max(0, Selected - (PageLinksToShow / 2)), Math.Max(0, PageCount - PageLinksToShow + 1));
int max = Math.Min(PageCount, min + PageLinksToShow);

Каждая ссылка тогда получает сгенерированное использование чего-то как (где минуты и макс. определяют, что диапазон страницы связывается для создания)...

for (int i = min; i <= max; i++)
{
    HyperLink btn = new HyperLink();
    btn.Text = (i + 1).ToString();
    btn.NavigateUrl = getLink(i);
    btn.CssClass = "pageNumbers" + (Selected == i ? " current" : string.Empty);
    this.Controls.Add(btn);
}

можно также создать 'Предыдущий' (и 'Затем') кнопки...

HyperLink previous = new HyperLink();
previous.Text = "Previous";
previous.NavigateUrl = getLink(Selected - 1);

первые и последние кнопки являются прямыми...

HyperLink previous = new HyperLink();
previous.Text = "1";
first.NavigateUrl = getLink(0);

В определении, когда показать "...", покажите элемент управления литерал, когда диапазон ссылки не рядом с первыми или последними страницами...

if (min > 0)
{
    Literal spacer = new Literal();
    spacer.Text = "&hellip;";
    this.Controls.Add(spacer);
}

Делают то же для вышеупомянутого для "макс. < PageCount".

Весь этот код помещается в переопределенный метод CreateChildControls.

11
ответ дан 1 December 2019 в 13:22
поделиться

Не управление, но это - способ реализовать подкачку страниц на уровне DB: Подкачка страниц SQL Server 2005 года

2
ответ дан 1 December 2019 в 13:22
поделиться

Я работал со средствами управления страницей DevExpress и Telerik и предпочитаю пейджер DevExpress. Я не уверен , если бы пейджер DevExpress может работать непосредственно с querystring, но я был бы удивлен, не сделал ли он, поскольку это очень гибко. До подкачки страниц между существующими страницами после загрузки все может находиться на клиенте или, если прохождение в сервер необходимо, управлением является полностью оборудованный Ajax. Я предлагаю, чтобы Вы запустили свой поиск по www.devexpress.com и затем проверили www.Telerik.com также (который является также оборудованным Ajax).

2
ответ дан 1 December 2019 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: