Сортировка GridView не работает с ObjectDataSource - PullRequest
0 голосов
/ 25 марта 2009

Я использую GridView для привязки, используя ObjectDataSource, используя свойство DataSource. Теперь проблема в том, что у меня есть целочисленное поле, которое показано ниже:

<asp:GridView ... DataSource="MyObjectDataSource" OnSorting="MyGrdView_Sorting" >
<Columns>
<asp:BoundField DataField="IntegerField" Visible="False" SortExpression="IntegerField" />
</Columns>
</asp:GridView>

Я также фиксирую событие RowCommand для своей бизнес-логики и запускаю метод Sort () GridView. В случае, если я запускаю метод Sort () из обработчика событий Sorting, я получаю исключение переполнения стека, которое не имею понятия, почему это происходит?

Наконец, даже после правильных действий, которые, по моему мнению, здесь не происходят, сортировка просто не работает в моем GridView с IntegerField. Что я делаю не так? (

Ответы [ 2 ]

1 голос
/ 25 марта 2009

Запуск Sort () для события Sorting снова вызовет событие Sorting, таким образом переполнение стека.

0 голосов
/ 25 марта 2009

Сначала я подумал, что вы используете свойство DataSource, когда вам, вероятно, следует использовать свойство DataSourceId.

Edit:

Хорошо, я слишком быстро отвечал и слишком медленно читал. ;) Не могли бы вы поделиться с нами своей реализацией MyGrdView_Sorting?

Второе редактирование и ответ на комментарий:

"Я просто делаю ((GridView) отправитель) .Sort (" IntegerField ", SortDirection.Ascending); в обработчике MyGrdView_Sorting."

Вызов GridView.Sort вызовет событие Sorting, которое в вашем случае будет вызывать Sort, которое вызовет событие Sorting, которое будет вызывать Sort, ... вы видите шаблон здесь? ;)

Вам нужно будет выполнить сортировку в другом месте вашей бизнес-логики, как вы упомянули. Вы можете установить свой ObjectDataSource.CanSort = true, указать SortParameterName и позволить вашему SelectMethod выполнять фактическую сортировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...