ObjectDataSource Paging -> в GridView данные не отображаются - PullRequest
3 голосов
/ 21 июля 2011

У меня есть объектный источник данных и вид сетки, настроенный, как показано ниже (с использованием VS2008 с .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» есть методы: 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 в источнике данных, данные не будут отображаться в виде сетки.Если для параметра EnablePaging установлено значение false, отображаются данные.Как вы можете видеть, два метода для получения данных будут работать точно так же.Отладка показывает, что при использовании EnablePaging = true возвращаются строки.Еще одна странная вещь (использование EnablePaging = true): в GetMainData MaximumRows установлено в 15 и startRowIndex в 0, в CountMainData MaximumRows установлено в 0 и startRowIndex в 0

Я реализовал этот тип пользовательской подкачки в другом проектеи сделал ту же конфигурацию - но на этот раз он пребывает в этом странном поведении.Что не так в моей реализации?Я только что забыл одну маленькую настройку?Есть предложения?

1 Ответ

6 голосов
/ 22 июля 2011

Ошибка состояла в том, что CountMainData не возвращал целое число. После того, как я изменил CountMainData, чтобы он возвращал целое число, все работало нормально.

...