首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用多个数据字段多次调用objectDatasource中的SelectMethod

使用多个数据字段多次调用objectDatasource中的SelectMethod
EN

Stack Overflow用户
提问于 2010-10-08 03:15:19
回答 1查看 3.9K关注 0票数 1

好的,这就是设置。我正在构建一个页面,它有一个列表视图、一个datapager和3个数据字段(2 x NextPreviousPagerField,1 x NumericPagerField),还有一个objectdatasource来完成这一切。

在我将断点放入objectdatsource控件中指定的SelectMethod之前,一切都很正常。似乎对于每个datapagerfield控件,它都调用selectmethod和selectcount方法。因此,每当用户分页时,它会调用数据库6次,而不是2次(我没有在atm上启用缓存)。如果我删除一个datapagerfield,它将删除2个调用。

现在,这是在VS2008的asp.net 3.5 SP1中构建的。当我将相同的代码文件复制到asp.net 4.0 VS2010解决方案中时,它的重复调用似乎消失了。

这是asp.net 3.5 SP1中的错误吗?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 16:17:22

实际上,您应该使用OnSelecting事件。

发生的情况是,ObjectDataSource两次调用SelectMethod 方法

  1. 第一次获取数据时。
  2. 下一次获取计数。

因此,我认为您必须实现OnSelecting事件

代码语言:javascript
运行
复制
<asp:ObjectDataSource ID="ODS" runat="server" SelectMethod="GetList" SelectCountMethod="GetListCount" 
    OnSelecting="ods_Selecting">
    TypeName="Website.Test" EnablePaging="true" /> 

然后在ObjectDataSource尝试调用count方法时取消该事件。

代码语言:javascript
运行
复制
 protected void ods_Selecting(object sender,
                ObjectDataSourceSelectingEventArgs e)
 {
      if (e.ExecutingSelectCount)
      {
           //Cancel the event   
           return;
      }
}

您可以使用下面的链接,这样就不会进行另一个db调用来获取计数。http://www.unboxedsolutions.com/sean/archive/2005/12/28/818.aspx

希望这能有所帮助。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3885073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档