使用ObjectDataSource
控件时,SelectMethod
和SelectCountMethod
可以使用实例方法或静态方法。根据{{3}},如果使用实例方法,将在完成时创建并处理新实例。
如果是实例方法,则创建业务对象 每次销毁由SelectMethod指定的方法 财产被称为。
但是,根据此MSDN documentation,如果启用了分页并且SelectMethod
和SelectCountMethod
都是实例方法,则在调用这些方法时会使用相同的实例。
如果我们启用了分页和SelectMethod和SelectCountMethod 是实例方法,调用两者时使用相同的实例 方法,所以我们可以在一个字段中保存寄存器的总数 SelectMethod然后我们可以在SelectCountMethod中返回它。
在in-depth walkthrough中,所提供的信息(显然是由MS ASP.NET团队的成员)与上述信息相矛盾。
但是你应该意识到不同的实例用于调用 Select和SelectCount方法 ...
我的问题:哪些行为是在asp.net中实现的?调用这些方法时使用的是相同的实例,还是由不同的实例调用?
我曾尝试(在.net 3.5 VS 2008中)使用第一个引用实现分页(表示它们由同一个实例调用),并且 为我工作。当我将记录计数设置为SelectMethod
中的非静态变量/字段时,在调用SelectCountMethod
时确实返回相同的值。我认为应该意味着使用相同的实例,这与第二个引用中的信息相反,并且我可以安全地在SelectMethod
中设置记录计数并返回它在SelectCountMethod
中使用非静态变量。但是,我更愿意,如果有人能够确认这一点,因为第一个引用很旧(写于06),并且我无法测试在新版本(.net 4.0及更高版本)中是否已更改此行为。
如果我的问题不清楚,或者有正式的参考资料可以回答我的问题,请告诉我。