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

问题描述 投票:0回答:1

我有一个对象数据源和一个网格视图,配置如下(使用 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>

网格视图或数据源的代码后面没有事件处理程序或其他代码

所以底层类“ErrorViewModel”中有方法: 公共数据表 GetMainData() { var dt = 提供者.MainData(); myMainData = 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 pagination objectdatasource
1个回答
6
投票

错误是 CountMainData 没有返回整数。 在我更改 CountMainData 以返回整数后,一切正常。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.