Может кто-нибудь объяснить точно, как / когда срабатывает ObjectDataSource? У меня есть страница ASP.NET с GridView, который ссылается на ODS. Я установил точку останова в методе, который использует ODS, и заметил, что он срабатывает дважды.
Я заглянул в код, и ответ сначала казался очевидным. У меня было
Page_Load()
{
if(!Page.IsPostBack)
{
MethodA();
MethodB();
}
}
где MethodA и MethodB оба в конечном итоге вызывали gv.DataBind (). Это имело смысл, потому что я предполагаю, что каждый вызов GridView.DataBind () приведет к запросу данных для ODS и, следовательно, к запуску моего метода доступа к данным.
Странная вещь заключается в том, что при комментировании вызова метода A он все еще срабатывает дважды . Проверка стека вызовов показывает, что метод запускается сначала как результат MethodB, а затем снова без следа, кроме [External Code]. Эта загадочная загрузка не происходит, когда я позволяю MethodA и MethodB оба выполнить.
Есть идеи, что здесь происходит? Любая идея, какой другой код, который у меня может быть, запрашивает данные для ODS? Я начинаю думать, что все эти элементы управления данными «без кода» - это больше запутанность и БС, чем они стоят.