Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

asp.net и взаимодействие страниц   Найти похожие ветки 

 
василий иванович   (2009-06-19 12:10) [0]

Ищется способ передачи данных между двумя страницами aspx.
Конкретно:
Есть первая страница aspx с гридом и набором контролов, для фильтрации данных.
Грид разбит постранично и страница предназначена для "живого" просмотра данных юзером на экране.

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

Собственно проблема в чем:
На первой странице я имею все требуемые данные для выполнения хранимой процедуры (параметры для нее) и там же могу получить данные для печати.
Но Исходная страница с гридом и контролами уже не должна быть видна

Либо мне надо как-то сделать редирект юзера на страницу печати и передать туда все значения контролов. Через гет-параметры неудобно и наверное не всегда допустимо, так как есть ограничение на длину гет-запроса.

Как можно наиболее элегантно выйти из положения?


 
Loginov Dmitry ©   (2009-06-19 12:17) [1]

Если что, то есть специализированный форум по ASP.NET:
http://sql.ru/forum/actualtopics.aspx?bid=19
Там Вы можете рассчитывать на наиболее оперативное решение проблемы.


 
palva ©   (2009-06-19 12:44) [2]

Положите тот объект, который обеспечивает содержимое грид (SqlTable, наверное) в сессионную переменную. А на новой странице сделайте DataBind с этой переменной.


 
василий иванович   (2009-06-19 12:55) [3]

на первой странице у меня sqldatasource настроенный на хранимую процедуру (возвращает надор данных для грида).

на второй странице (либо это будет просто http обработчик) предполагается вызывать другую процедуру, которая возвращает данные в виде varchar(max) /*внутри xml документ, который будет форматироваться в таблицу через xsl*/

то есть мне надо либо передать параметры процедуры http обработчику или странице и получить данные уже там,
либо выполнить вторую процедуру и xsl преобразование в коде первой страницы, и как-то после этого показать только тот контент, что получится после трансформации xsl


 
b z   (2009-06-19 13:17) [4]

Убрать 2-ю страницу, все делать в одной.


 
Cobalt ©   (2009-06-19 13:20) [5]

Некоторые делают хитрым способом:
Данные одни и те же, но стили для отображения меняют.
что не надо - скрывают, что надо - размещают в нужном порядке на страничке.


 
palva ©   (2009-06-19 13:35) [6]

Сначала я вас не очень понял. Прочитал - версия для печати. Сначала понял, что данные одни и те же, и, типа, вы не хотите обращаться второй раз к базе данных. Тогда надо передать на вторую страницу SqlDataTable через Session и дело с концом. Если же у вас на первой странице получены только параметры для хранимой процедуры, то сохраните в Session параметры прямо в виде одной переменной SqlParameterCollection Гонять же эти данные через клиент, да еще если их, как вы пишете, много, по-моему, не логично.


 
palva ©   (2009-06-19 13:39) [7]


> Убрать 2-ю страницу, все делать в одной.

Самое естественное решение, если печатать страничку в любом случае будут.


 
василий иванович   (2009-06-19 14:26) [8]

В общем пока сделал мультивью.
На одном вью все что было на первой странице, на втором вью asp:xml
По кнопке он биндится к полученным данным и активный вью переключается.

А вообще на будущее, наверное же можно на первой странице оформить пост запрос с параметрами для sp к http обработчику (в версии для печати же не требуется поддержка интерактива и какие-то серверные контролы).
А уже в в классе обработчика вынуть параметры, выполнить процедуру и сгенерировать контент?


 
василий иванович   (2009-06-19 15:43) [9]

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


 
b z   (2009-06-20 12:31) [10]


> все делать в одной странице не очень подходит.
Выделить в контрол.


 
Иксик ©   (2009-06-20 13:44) [11]

Имхо palva предложил самый логичный вариант: формировать таблицу/ряд на первой странице и в переменной сессии ее передавать на вторую.



Страницы: 1 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1245452036
Иксик
2009-06-20 02:53
2009.08.16
I will derive


6-1205915538
grisme
2008-03-19 11:32
2009.08.16
Content-Length field


1-1211986288
Kolan
2008-05-28 18:51
2009.08.16
Относительный резайз


15-1244611324
pasha_golub
2009-06-10 09:22
2009.08.16
Не пойму сути компонентов а-ля TTransaction


4-1202326013
Velimir
2008-02-06 22:26
2009.08.16
Получить информацию о ресурсах PCI устройства