我有一个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”中有方法: public DataTable GetMainData() { var dt = provider.MainData(); myMainData = 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
我在另一个项目中实现了这种类型的自定义分页并执行了相同的配置 - 但这次它存在于这种奇怪的行为中。我的实施有什么问题?我刚忘了一个小设置吗?有什么建议吗?
答案 0 :(得分:6)
错误是,CountMainData没有返回整数。 在我更改了CountMainData以返回一个整数后,一切正常。