ObjectDataSource分页 - > GridView中没有显示数据

mar*_*ing 3 .net paging gridview objectdatasource

我有一个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>
Run Code Online (Sandbox Code Playgroud)

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;
    }
Run Code Online (Sandbox Code Playgroud)

我想要的是:自定义服务器端分页.问题是:当我在数据源中设置EnablePaging = true时,gridview中将不会显示任何数据.如果EnablePaging设置为false,则显示数据.如您所见,检索数据的两种方法将完全相同.调试显示,使用EnablePaging = true时返回了行.另一个奇怪的事情(使用EnablePaging = true):在GetMainData中,maximumRows设置为15,并且CountMainData中的startRowIndex为0,maximumRows设置为0,startRowIndex设置为0

我在另一个项目中实现了这种类型的自定义分页,并进行了相同的配置 - 但这次它存在于这种奇怪的行为中.我的实施有什么问题?我刚忘了一个小设置吗?有什么建议?

mar*_*ing 6

错误是,CountMainData没有返回整数.我改变CountMainData以返回一个整数后,一切正常.