І взаємодія сторінок
Крім цього є скажімо кнопка, по якій користувач повинен перейти на іншу сторінку, на якій ті ж дані будуть представлені у версії для друку.
Власне проблема в чому: На першій сторінці я маю всі необхідні дані для виконання процедури, що зберігається (параметри для неї) і там же можу отримати дані для друку.
Або мені треба якось створити редирект користувача на сторінку друку і передати туди всі значення контролю. Через геть-параметри незручно і напевно не завжди допустимо, оскільки є обмеження на довжину геть-запиту.
Як можна найелегантніше вийти зі становища?
Якщо що, тобто спеціалізований форум з ASP.NET: http://sql.ru/forum/actualtopics.aspx?bid=19 Там Ви можете розраховувати на найбільш оперативне вирішення проблеми.
Покладіть той об'єкт, який забезпечує вміст грід (SqlTable, мабуть) у сесійну змінну. А на новій сторінці зробіть DataBind із цією змінною.
на першій сторінці у мене sqldatasource налаштований на процедуру, що зберігається (повертає надор даних для грида).
на другій сторінці (або це буде просто http обробник) передбачається викликати іншу процедуру, яка повертає дані у вигляді varchar(max) /*всередині xml документ, який форматуватиметься в таблицю через xsl*/
тобто мені треба або передати параметри процедури http обробнику або сторінці і отримати дані вже там, або виконати другу процедуру і xsl перетворення в коді першої сторінки, і якось після цього показати тільки той контент, що вийде після трансформації xsl
Прибрати другу сторінку, все робити в одній.
Деякі роблятьхитрим способом: Дані одні і ті ж, але стилі для відображення змінюють. Що не треба - приховують, що треба - розміщують у потрібному порядку на сторінці.
Спершу я вас не дуже зрозумів. Прочитав – версія для друку. Спочатку зрозумів, що дані одні й самі, і, типу, ви хочете звертатися вдруге базі даних. Тоді треба передати на другу сторінку SqlDataTable через Session і справу з кінцем. Якщо ж у вас на першій сторінці отримані тільки параметри для процедури, що зберігається, то збережіть в Session параметри прямо у вигляді однієї змінної SqlParameterCollection Ганяти ж ці дані через клієнт, та ще якщо їх, як ви пишете, багато, по-моєму, не логічно.
> Прибрати 2-у сторінку, все робити в одній.Найприродніше рішення, якщо друкувати сторінку в будь-якому випадку будуть.
Загалом поки зробив мультив'ю. На одному в'ю все що було на першій сторінці, на другому в'ю asp:xml По кнопці він биндіться до отриманих даних і активний в'ю перемикається.
А взагалі на майбутнє, напевно ж можна на першій сторінці оформити пост запит з параметрами для sp до http обробника (у версії для друку ж не потрібна підтримка інтерактиву і якісь серверні контроли). А вже в класі обробника вийняти параметри , виконати процедуру та згенерувати контент?
все робити в одній сторінці не дуже підходить. Всі сторінки використовують masterpage, а на ній багато всього зайвого в шапці сторінки. На друк це виводитися не повинно, а рулити видимістю дуже не хочеться
> все робити в одній сторінці не дуже підходить.Виділити у контрол.
Імхо palva запропонував найлогічніший варіант: формувати таблицю/ряд на першій сторінці та у змінній сесії її передавати на другу.