Как работает DataGrid(GridView)?
Допустим на форуме необходимо сделать постраничный вывод, тогда необходимо будет делать запрос на все записи, содержащиес в соотвествующей таблице!!! :x
Я правильно понимаю?
Если это верно, то данный способ не очень-то устраивает для решения поставленной задачи.
И ещё такой вопрос. При заходе пользователя на страницу для него создаётся датагрид с датасетом, а для следующего также будут создаваться уже новые экземпляры?
Посоветуйте как лучше организовать постраничный вывод?
DataGrid обращается ко всем записям. А экземпляр грида имеет очень малый срок жизни. Когда форма формируется на стороне сервера, тогда и создаётся экземпляр. Генерится событие pageLoad, когда страница отправляется клиенту в виде HTML, экземпляр перестаёт существовать. Используй запрос для получения нужных записей и его результат сохраняй в памяти во время всей сессии Web-приложения.
Спасибо за ответ. Я решил свой класс сделать, который будет создавать обьект, подобный Pager. А вывод делать хочу при помощи Stored Procedure в MsSql,примерно как здесь (IDENTITY):
http://www.gotdotnet.ru/DotNet/FAQ/DataWorks/MSSQLDesignNDev/119343.aspx
В этой статейке одно непонятно, таблица, которая создаётся хранимой процедурой, на постоянно остаётся в БД или временно. Если постноянно, то надо писать ещё одну процедуру по удалению этой временной таблички. Ведь нельзя будет создать в следующем запросе таблицу с таким же именем.
И ещё маленький вопрос. Как сделать чтобы MathPath.Round() округлял в большую сторону? Т.е. когда будет число 1.04, он бы округлял его до 2.
И ещё маленький вопрос. Как сделать чтобы MathPath.Round() округлял в большую сторону? Т.е. когда будет число 1.04, он бы округлял его до 2.
Вроде сделал ну чё-то как-то коряво всё. Делю числа типа integer 13/9 получаю 1??? Пришлось преобразовывать в double, а с округлением вообще ахинея, но зато работает.
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);
Функция Math.Floor округляет в меньшую сторону
Функция Math.Ceiling округляет в большую сторону
Последняя функция - то что тебе надо