SelectMethod в objectDatasource вызывается несколько раз с несколькими полями данных

Итак, вот настройка. Я строю страницу, которая имеет просмотр списка, страницу данных и 3 поля данных (2 x NextPreviousPagerField, 1 x NumericPagerField) и объектный источник данных, чтобы объединить все это вместе.

Все работало нормально, пока я не установил точку останова в SelectMethod, указанном в элементе управления objectdatsource. Похоже, что для каждого элемента управления поля данных он вызывает метод selectmethod и selectcount. Следовательно, всякий раз, когда пользователь выполняет постраничную загрузку, он вызывает базу данных 6 раз вместо 2 (у меня не включено кэширование atm). Если я удалю одно поле данных, он удалит 2 вызова.

Теперь это сборка в asp.net 3.5 SP1 в VS2008. Когда я скопировал те же файлы кода в решение asp.net 4.0 VS2010, дублированный вызов, похоже, исчез.

Это ошибка в asp.net 3.5 SP1?

заранее спасибо

Ответы на вопрос(1)

Решение Вопроса

На самом деле вы должны использовать событие OnSelecting.

Что происходит, так это то, что ObjectDataSource вызывает метод SelectMethodдважды

Первый раз он получает данные.В следующий раз он получит счет.

Поэтому я думаю, что вы должны реализовать событие OnSelecting

<asp:ObjectDataSource ID="ODS" runat="server" SelectMethod="GetList" SelectCountMethod="GetListCount" 
    OnSelecting="ods_Selecting">
    TypeName="Website.Test" EnablePaging="true" /> 

и затем отмените событие, когда ObjectDataSource попытается вызвать метод count.

 protected void ods_Selecting(object sender,
                ObjectDataSourceSelectingEventArgs e)
 {
      if (e.ExecutingSelectCount)
      {
           //Cancel the event   
           return;
      }
}

Вы можете использовать ссылку ниже, чтобы другой вызов БД не производился для подсчета количества.http://www.unboxedsolutions.com/sean/archive/2005/12/28/818.aspx

Надеюсь это поможет.

Ваш ответ на вопрос