大家都知道,当GridVew和ObjectDataSource在一起搭配使用时,如指定GridVew的DataSrouceID为ObjectDataSource时,这个时候程序可以不用调用DataBind()方法进行数据绑定,程序会默认在页面中所有事件结束后,程序会默认调用一次DataBind()。
以上这些大家应该都很清楚,但我最近无意发现一个现象,例如我们在页面的某一button的onclick事件里修改了ObjectDataSource的Select参数的默认值,我们先在button里不写GridView.DataBind(),我在程序中设置断点跟踪发现,程序的运行结果是,先运行page_load()->Button的OnClick事件->调用默认的DataBind()。 而如果我们在这一Button的onclick事件里写上GridView.DataBind()的话,程序运行结果就是page_load->Button的OnClick事件->在Button的OnClick事件里调用我们写的DataBind()方法。
大家有没有发现,原本在onclick事件结束后,程序会默认调用的DataBind()不会再调用了。
以此类推,如果我们在Page_Load中调用DataBind()的话,那么程序运行结果就会是Page_Load->运行Page_Load中的DataBind(),而不会在Page_Load结束后调用默认的DataBind()
以上是我的一个小发现(也许很多人都发现了^_^),不知道大家对这个问题是怎么理解的,欢迎大家接着对我提的这个问题继续讨论下~~~ 大家交流交流~~~
(ps:昨天开始写的没写清楚,可能把大家搞糊涂了,现在修改了下)
转载于:https://www.cnblogs.com/niat-alex/archive/2008/04/25/1171622.html