Разбитые на страницы результаты поиска с LINQ к SQL

Чтобы отключить элементы, вы должны использовать атрибут disabled .

Я немного изменил ваш код, и это будет делать то, что вы после. Blazor автоматически добавляет или удаляет атрибут disabled на основе значения IsDisabled.

Вы также должны использовать атрибут disabled на своей кнопке. Это гораздо лучшая практика.






@functions {
    protected bool IsDisabled { get; set; }
}

Вы все еще можете комбинировать это с применением класса CSS для стилизации отключенного элемента. Это зависит от вас.

21
задан Pablo Santa Cruz 27 April 2009 в 14:38
поделиться

2 ответа

Шаблон для подкачки очень прост. Он включает использование методов расширения Skip () и Take () следующим образом:

public IQueryable<Item> FindItemsByDescription(string description, int pageIndex, int pageSize)
{
   return from item in _dc.Items
          where item.Description.
          Contains(description).
          Skip((pageIndex - 1) * pageSize).
          Take(pageSize);
}

ОБНОВЛЕНИЕ: Чтобы получить общее количество, просто используйте метод Count ():

int totalCount = from item in _dc.Items
                 where item.Description.
                 Contains(description).Count();

int numberOfPages = (int)(totalCount/pageSize);

В зависимости от того, как вы собираетесь отображать записи, вы можете использовать numberOfPages для отображения панели навигации с «Страница X из Y» ... Страница 1 из 10 и т.д ..

30
ответ дан 29 November 2019 в 21:21
поделиться

Вы можете использовать метод расширения Take:

public IQueryable<Item> FindItemsByDescription(string description, int resultAmount)
{
   return from item in _dc.Items
          where item.Description.Contains(description).Take(resultAmount);
}

Вы можете сделать еще один шаг и использовать Skip для последующих «страниц»:

public IQueryable<Item> FindItemsByDescription(string description, int resultAmount, int page)
{
   return from item in _dc.Items
          where item.Description.Contains(description).Skip(resultAmount * page).Take(resultAmount);
}
1
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

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