Фильтрация данных с использованием EntityDataSource (выпадающий список)

#asp.net #entitydatasource

#asp.net #entitydatasource

Вопрос:

У меня есть выпадающий список, в котором используется entitydatasource, пользователь выбирает форму значения из выпадающего списка, и вид таблицы изменяется в зависимости от статуса заказа (Drowpdownlist). Ниже приведен источник данных в виде таблицы. Это работает, но когда я перехожу, например, на страницу 4, а затем показываю другое значение из выпадающего списка, представление сетки исчезает. Пожалуйста, помогите.

     <asp:EntityDataSource ID="GridViewEDS" runat="server" ConnectionString="name=ServiceEntities" DefaultContainerName="ServiceEntities"
         EnableFlattening="False" EntitySetName="Orders" Where="it.[OrderStatus] == @OrderStatus">
       <WhereParameters>
            <asp:ControlParameter Name="OrderStatus" ControlID="OrderStatusDropDownList" DbType="String" DefaultValue="Null"/>
       </WhereParameters>
  

Комментарии:

1. Когда вы выбираете другое значение из выпадающего списка, содержит ли этот результирующий набор достаточно данных для заполнения четырех страниц? Можете ли вы изменить страницу просмотра сетки обратно на 1 и просмотреть данные?

2. Да и да, проблема в том, что когда я нахожусь на странице 4, например, если я изменил выпадающий список, просмотр сетки исчезает. Когда я перехожу на страницу 1 и меняю выпадающий список, gridview работает нормально. Это происходит только тогда, когда я нахожусь на страницах gridview 2,3,4… Спасибо, что изучили это

3. Итак, всякий раз, когда вы делаете новый выбор в своем выпадающем списке, можете ли вы заставить этот процесс сбросить текущую страницу на страницу 1? Означает ли исчезновение, что он больше не виден или данных нет?

4. BubbleHearth Огромное спасибо за вашу помощь. Я добавил mygridView. pageIndex = 0 для выпадающего списка, и все работает отлично!!!! Спасибо

Ответ №1:

После прояснения некоторых моментов в комментариях решением этой проблемы было бы вернуть текущую страницу в GridView обратно на первую страницу, когда в выпадающем списке сделан новый выбор. Одной из причин этого может быть то, что дополнительный результирующий набор не содержит достаточного количества записей для заполнения более чем одной страницы, поэтому ничего не отображает.

 gridView.PageIndex = 0;