【发布时间】:2011-07-21 09:43:27
【问题描述】:
我有一个 objectdatasource 和一个 gridview 配置如下所示(使用 VS2008 w/.NET3.5):
<asp:ObjectDataSource ID="odsMainData" runat="server" EnablePaging="True" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetMainData" TypeName="ErrorViewer.Model.ErrorViewModel"
SelectCountMethod="CountMainData">
<SelectParameters>
<asp:Parameter Name="maximumRows" Type="Int32" />
<asp:Parameter Name="startRowIndex" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="grdMainData" runat="server" AllowPaging="True" DataSourceID="odsMainData" PageSize="15" AllowSorting="True">
</asp:GridView>
gridview 或数据源的代码中没有事件处理程序或其他代码
所以在底层类“ErrorViewModel”中有方法: 公共数据表 GetMainData() { var dt = provider.MainData(); 我的主要数据 = dt; 返回 dt; }
public DataTable GetMainData(int maximumRows, int startRowIndex)
{
var dt = provider.MainData();
myMainData = dt;
return dt;
}
public long CountMainData()
{
var count = provider.GetMainDataCount();
return count;
}
public long CountMainData(int maximumRows, int startRowIndex)
{
var count = CountMainData();
return count;
}
我想要的:自定义服务器端分页。 问题是什么: 当我在数据源中设置 EnablePaging=true 时,gridview 中不会显示任何数据。如果 EnablePaging 设置为 false,则显示数据。如您所见,这两种检索数据的方法完全相同。 调试显示,使用 EnablePaging=true 时有返回行。 另一个奇怪的事情(使用 EnablePaging=true): 在 GetMainData maximumRows 设置为 15 和 startRowIndex 为 0 在 CountMainData maximumRows 设置为 0 和 startRowIndex 为 0
我已经在另一个项目中实现了这种类型的自定义分页并进行了相同的配置 - 但这次它存在于这种奇怪的行为中。我的实施有什么问题?我只是忘记了一个小设置吗?有什么建议吗?
【问题讨论】:
标签: .net gridview paging objectdatasource