Я работаю с GridView в UpdatePanel и выполняю привязку данных к объекту ObjectDataSource с использованием свойства DataSourceID. Все работает отлично, за исключением случаев, когда я выполняю проверку данных в источнике объекта и возвращаю false
из Update. Я использую это для установки содержимого и видимости другого элемента управления в GridView. Однако это никогда не появляется, поскольку GridView выполняет скрытый DataBind()
в OnPreRender()
, хотя EnableViewState = "true"
(через BaseDataBoundControl).Почему Asp.Net WebForms GridView выполняет незапрошенную DataBind() в OnPreRender()?
Есть ли простой способ просто повернуть этот посторонний DataBind()
? Я использовал отражение для установки поля _requiresDataBind
в BaseDataBoundControl до false
, и все работает так, как хотелось бы, чтобы он работал, но это вряд ли подходит для производства. Является ли подкласс GridView единственным способом? Я что-то пропустил?