SuRaj Dedhia Ответов: 1

Сброс pageindex было для элемента управления ListView после применения фильтра


Разрабатываю сайт на vb.net. Я использовал Listview для отображения продуктов. Есть несколько фильтров для уточнения поиска. Я показываю 36 продуктов на одной странице, а в базе данных всего 450 продуктов. Проблема в том, что если я переключился со страницы 1 на страницу 10, а затем применил любой фильтр из списка флажков, и после применения фильтра он обнаружил 10 продуктов, тогда он показывает результат пустых, но есть 10 продуктов, но он все еще находится на 10-й странице, поэтому не отображается 10 продуктов, потому что это на 1-й странице. Может ли кто-нибудь помочь мне, как я могу восстановить pageIndex после применения фильтра? OnPagePropertiesChanged Я попытался сбросить индекс страницы после привязки списка, но он не работает.

Что я уже пробовал:

Protected Sub OnPagePropertiesChanging(sender As Object, e As PagePropertiesChangingEventArgs)
        TryCast(products.FindControl("DataPager1"), DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, False)
        Me.buildWhereClause()
        products.SelectedIndex = -1
    End Sub

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Вам просто нужно заново заполнить свой ListView с обновленным источником данных, чтобы отразить изменения после выгрузки страницы и фильтрации.

Если вы хотите сбросить страницу после фильтрации, то вам, возможно, придется написать логику в CheckBoxList changed event вместо этого и сделать что-то вроде этого:

DataPager pager = ListView1.FindControl("DataPagerId") as DataPager;
if (pager != null)
{
    pager.SetPageProperties(0, pager.PageSize, true);
}


VB.NET
Dim pager As DataPager = TryCast(ListView1.FindControl("DataPagerId"), DataPager)
If pager IsNot Nothing Then
	pager.SetPageProperties(0, pager.PageSize, True)
End If

'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik
'Facebook: facebook.com/telerik
'=======================================================


SuRaj Dedhia

Это не в c#. Он находится в VB. Какие-нибудь изменения, которые я могу внести в свой код, который я опубликовал?

Vincent Maverick Durano

Используйте онлайн-конвертер, чтобы преобразовать его в VB.NET. Изменение, которое вам нужно, - это удалить ваш код для установки SelectedIndex и добавить код, который я предоставил в событии CheckBoxList.

Vincent Maverick Durano

Я обновил код, чтобы включить VB.NET эквивалент.

SuRaj Dedhia

Я использовал ваш код в myCheckBoxListSelectedIndexChanged, но он не работает. Он остается только на странице 1, Если вы нажмете на 2,3,4 и т. д. Тот же код, который я пробовал onPagePropertiesChanging, но он не переходит на другие страницы.

Vincent Maverick Durano

Вам не нужно применять код в событии onPagePropertiesChanging, чтобы подкачка работала нормально.