我有一个ObjectDataSource和GridView,如下所示(使用带.NET3.5的VS2008):
<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>
网格视图或数据源的代码后台中没有事件处理程序或其他代码。
因此,在底层类“ErrorViewModel”中有方法: public DataTable GetMainData() { var dt = provider.MainData(); myMainData = dt; return 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时,网格视图中将不显示任何数据。如果将EnablePaging设置为false,则会显示数据。你可以看到,检索数据的两种方法完全相同。 调试显示,在使用EnablePaging=true时返回了行。 另一个奇怪的事情(使用EnablePaging=true): 在GetMainData中,maximumRows设置为15,startRowIndex设置为0 在CountMainData中,maximumRows设置为0,startRowIndex设置为0
我在另一个项目中实现了这种类型的自定义分页,并进行了相同的配置 - 但这次出现了奇怪的行为。我的实现有什么问题?我是否忘记了一些小设置?有什么建议吗?
Long
不是记录计数的有效返回类型。感谢您指出这一点...请将其标记为答案。 - cjbarth