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