【发布时间】:2010-04-14 21:24:06
【问题描述】:
有人可以准确解释 ObjectDataSource 是如何/何时触发的吗?我有一个 ASP.NET 页面,它带有一个引用 ODS 的 GridView。我在 ODS 使用的方法中设置了一个断点,发现它触发了两次。
我查看了代码,起初答案似乎很明显。我有
Page_Load()
{
if(!Page.IsPostBack)
{
MethodA();
MethodB();
}
}
其中 MethodA 和 MethodB 最终都调用了 gv.DataBind()。这是有道理的,因为我假设每次调用 GridView.DataBind() 都会导致向 ODS 询问数据,因此运行我的数据访问方法。
奇怪的是,当注释掉对 MethodA 的调用时,它仍然会触发两次。检查调用堆栈显示该方法首先作为 MethodB 的结果运行,然后再次运行,除了 [外部代码] 之外没有任何踪迹。当我让 MethodA 和 MethodB 都执行时,这种神秘的负载不会发生。
知道这里发生了什么吗?知道我可能有哪些其他代码在向 ODS 询问数据吗?我开始认为所有这些“无代码”数据控件比它们的价值更令人困惑和荒谬。
【问题讨论】:
标签: asp.net data-binding gridview