Her*_*man 1 asp.net listview objectdatasource datapager
好的,所以这里是设置.我正在构建一个页面,其中包含一个listview,一个datapager和3个datapagerfield(2个NextPreviousPagerField,1个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中的错误吗?
提前致谢
实际上你应该使用OnSelecting事件.
会发生什么是ObjectDataSource调用方法SelectMethod 两次
所以我认为你必须实现OnSelecting事件
<asp:ObjectDataSource ID="ODS" runat="server" SelectMethod="GetList" SelectCountMethod="GetListCount"
OnSelecting="ods_Selecting">
TypeName="Website.Test" EnablePaging="true" />
Run Code Online (Sandbox Code Playgroud)
然后在ObjectDataSource尝试调用count方法时取消该事件.
protected void ods_Selecting(object sender,
ObjectDataSourceSelectingEventArgs e)
{
if (e.ExecutingSelectCount)
{
//Cancel the event
return;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用下面的链接,以便不进行另一次数据库调用来获取计数. http://www.unboxedsolutions.com/sean/archive/2005/12/28/818.aspx
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
3767 次 |
| 最近记录: |