0

Мой сценарий - я получу некоторые загрузки данных в формате csv на моем сервере, который будет иметь более 60 тыс. Записей. и номера столбцов могут изменить файл в файл, теперь моя проблема заключается в том, что я хочу отобразить содержимое этого в списке, с разбивкой на страницы. и я не хочу загружать целые данные на клиентскую сторону, я хочу, чтобы данные извлекались только тогда, когда это было необходимо.Asp.net Listview server side pagination

Как я могу это сделать с помощью listview и datapager? Я знаю, что datapager поддерживает только linqdatasource для разбивки на страницы на стороне сервера? есть ли другие возможности? или рекомендация для этого

Заранее спасибо

ответ

1

Я импорт CSV в таблицу, вы увидите, что гораздо легче работать, и гораздо быстрее, чем отработка CSV непосредственно. Пример того, как это сделать, - CodeProject.

После этого вы можете перейти через эти записи, используя server side paging для повышения эффективности.

Обновление: Если CSV соответствует определенной схеме, то у вас не будет динамического создания таблиц. У меня было бы две таблицы. Один для хранения ссылки на файл (uniqueId, имя_файла/путь, UserId) и другой для FileItems (ваша схема плюс File.UniqueId посторонний ключ). Таким образом, вы можете заблокировать файл для пользователя, который обращается к нему. Проблемы блокировки и параллелизма - это отдельный вопрос, и есть много способов, которыми вы могли бы это подходить.

Если вы хотите выполнять операции непосредственно с 60k записей в CSV-файле, вы найдете его медленным. Нет никакого способа обойти это, если вы не будете кэшировать набор данных из CSV и работать с кешем. Для меня хранилище базы данных - это лучший носитель, чем кеш. Он также дает вам исторический отчет о том, что делается, плюс если что-то происходит во время работы в гриде, вы сохраняете данные в базе данных без необходимости повторно загружать CSV-файл.

+0

Спасибо, Но опять же, проблема в том, что мне нужно динамически создавать таблицы, загружать данные и извлекать их, а также это может вызвать дополнительные проблемы при доступе несколькими пользователями. – Aneef

+0

См. Мой отредактированный ответ выше. – Junto

+0

Спасибо Junto :) – Aneef

Смежные вопросы