Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как работает DataGrid(GridView)?

422
16 апреля 2006 года
Dimarik
181 / / 12.02.2005
Вопрос в следующем. Нужно сделать постраничный вывод. В DataGrid есть стандарнтное, уже готовое PagingSettings и все его настройки. Непонятно как датагрид разбивает данные на страницы, он ведь ориентируется на DataSet. =>
Допустим на форуме необходимо сделать постраничный вывод, тогда необходимо будет делать запрос на все записи, содержащиес в соотвествующей таблице!!! :x
Я правильно понимаю?

Если это верно, то данный способ не очень-то устраивает для решения поставленной задачи.

И ещё такой вопрос. При заходе пользователя на страницу для него создаётся датагрид с датасетом, а для следующего также будут создаваться уже новые экземпляры?

Посоветуйте как лучше организовать постраничный вывод?
273
17 апреля 2006 года
3A3-968M
1.2K / / 22.12.2005
DataGrid обращается ко всем записям. А экземпляр грида имеет очень малый срок жизни. Когда форма формируется на стороне сервера, тогда и создаётся экземпляр. Генерится событие pageLoad, когда страница отправляется клиенту в виде HTML, экземпляр перестаёт существовать. Используй запрос для получения нужных записей и его результат сохраняй в памяти во время всей сессии Web-приложения.
422
17 апреля 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
DataGrid обращается ко всем записям. А экземпляр грида имеет очень малый срок жизни. Когда форма формируется на стороне сервера, тогда и создаётся экземпляр. Генерится событие pageLoad, когда страница отправляется клиенту в виде HTML, экземпляр перестаёт существовать. Используй запрос для получения нужных записей и его результат сохраняй в памяти во время всей сессии Web-приложения.



Спасибо за ответ. Я решил свой класс сделать, который будет создавать обьект, подобный Pager. А вывод делать хочу при помощи Stored Procedure в MsSql,примерно как здесь (IDENTITY):

http://www.gotdotnet.ru/DotNet/FAQ/DataWorks/MSSQLDesignNDev/119343.aspx


В этой статейке одно непонятно, таблица, которая создаётся хранимой процедурой, на постоянно остаётся в БД или временно. Если постноянно, то надо писать ещё одну процедуру по удалению этой временной таблички. Ведь нельзя будет создать в следующем запросе таблицу с таким же именем.

И ещё маленький вопрос. Как сделать чтобы MathPath.Round() округлял в большую сторону? Т.е. когда будет число 1.04, он бы округлял его до 2.

422
17 апреля 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by Dimarik

И ещё маленький вопрос. Как сделать чтобы MathPath.Round() округлял в большую сторону? Т.е. когда будет число 1.04, он бы округлял его до 2.



Вроде сделал ну чё-то как-то коряво всё. Делю числа типа integer 13/9 получаю 1??? Пришлось преобразовывать в double, а с округлением вообще ахинея, но зато работает.

 
Код:
double con = Convert.ToDouble(countRecDB);
        double si = Convert.ToDouble(size);
        double res1 = con / si;
       double res2 = Math.Round(res1);
       if (res1 - res2 > 0)
        {
            countPages = Convert.ToInt32(res2) + 1;
        }
        else
            countPages = Convert.ToInt32(res2);
273
18 апреля 2006 года
3A3-968M
1.2K / / 22.12.2005
Действительно, сложновато:) Можно проще:
Функция Math.Floor округляет в меньшую сторону
Функция Math.Ceiling округляет в большую сторону
Последняя функция - то что тебе надо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог