【问题标题】:ObjectDataSource Paging -> no data displayed in GridViewObjectDataSource 分页 -> GridView 中无数据显示
【发布时间】: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


    【解决方案1】:

    错误在于,CountMainData 没有返回整数。 在我将 CountMainData 更改为返回一个整数后,一切正常。

    【讨论】:

    • 将此答案标记为解决方案(单击复选标记)以将您的问题标记为已解决
    • 令人难以置信的是,Long 不是记录计数的有效返回类型。感谢您指出这一点......请将此标记为答案。
    • @user855601 只需花费 8 小时将我的网格和 objectdatasource 分开,以找到解决此问题的方法。感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多