PagedDataSource не получает источник данных

Я не могу получить PagedDataSource использовать коллекцию IEnumerated EntityCollection объекты в качестве источника данных.

PagedDataSource принимает коллекцию в качестве источника данных, но тогда я не могу использовать основные свойства, такие как CurrentPageIndex а также IsLastPage и т.п.

Мое приложение разрывается с ошибкой Cannot compute Count for a data source that does not implement ICollection.

Я пытался делать

ICollection<Location> listlocations = Company.Locations;

но не имели успеха.

Что я могу сделать?

Codesnippet

    protected void loadBuildings()
    {
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = Company.Locations;
        pds.AllowPaging = true;
        pds.PageSize = Convert.ToInt16(ddlPageSize.SelectedValue);
        pds.CurrentPageIndex = CurrentPage;
        lnkbtnNext.Enabled = !pds.IsLastPage;
        lnkbtnPrevious.Enabled = !pds.IsFirstPage;

        buildingsDataList.DataSource = pds;
        buildingsDataList.DataBind();
    }

1 ответ

Решение

Я должен был использовать опцию AllowCustomPaging и определить мои собственные страницы, потому что EntityCollection не поддерживает ICollection учебный класс.

Я добавил следующий код, чтобы определить мои страницы / элементы

    pds.VirtualCount = Company.Locations.Count();
    pds.PageSize = 3;
    pds.AllowCustomPaging = true;

а также некоторый другой код в моем методе генерации страниц

for (int i = 0; i < (pds.VirtualCount/pds.PageSize);i++)

Другие вопросы по тегам