И взаимодействие със страницата

Освен това има, да речем, бутон, чрез който потребителят трябва да отиде на друга страница, на която ще бъдат представени същите данни в печатната версия. Самите данни се доставят от съхранена процедура MSSQL.

Всъщност проблемът е: На първата страница имам всички необходими данни за изпълнение на съхранената процедура (параметри за нея) и мога да получа данните за отпечатване там. Но страницата Source с мрежата и контролите вече не трябва да се вижда

Или трябва по някакъв начин да пренасоча потребителя към страницата за печат и да предам всички стойности на контролите там. Използването на параметри за получаване е неудобно и вероятно не винаги е приемливо, тъй като има ограничение за дължината на заявката за получаване.

Кой е най-елегантният начин за излизане от ситуацията?

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

Поставете обекта, който предоставя съдържанието на мрежата (вероятно SqlTable) в променлива на сесията. И на нова страница направете DataBind с тази променлива.

на първата страница имам sqldatasource, конфигуриран за съхранена процедура (връща броя на данните за мрежата).

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

тоест трябва или да предам параметрите на http процедурата към манипулатора или страницата и да получа данните вече там, или да изпълня втората процедура и xsl трансформация в кода на първата страница и по някакъв начин след това да покажа само съдържанието, което ще бъде получено след xsl трансформацията

Махнете 2-ра страница, направете всичко в едно.

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

В началото не те разбрах много. Прочетете - версия за печат. Отначало разбрах, че данните са едни и същи и като че ли не искате да влизате в базата данни втори път. След това е необходимо да прехвърлите SqlDataTable на втората страница чрез Session и това е всичко. Ако сте получили само параметри за съхранената процедура на първата страница, тогава запазете параметрите в сесията директно като една SqlParameterCollection променлива.Според мен не е логично тези данни да се карат през клиента, а дори и да са много от тях, докато пишете.

> Махнете 2-ра страница, направете всичко наведнъж.Най-естественото решение, ако страницата все пак ще се отпечата.

Общо взето съм направил multiview досега. На единия изглед всичко което беше на първа страница, на втория asp:xml изглед С бутона се връзва към получените данни и превключва активния изглед.

Като цяло, за в бъдеще вероятно е възможно да се издаде заявка за публикуване с параметри за sp към http манипулатора на първата страница (във версията за печат не се изисква интерактивна поддръжка и някои сървърни контроли). И вече в класа на манипулатора, премахнете параметрите, изпълнете процедурата и генерирайте съдържание?

правенето на всичко на една страница не е много подходящо. всички страници използват основната страница и има много излишни неща в заглавката на страницата. това не трябва да се отпечатва и наистина не искам да управлявам видимостта

> правенето на всичко на една страница не е много подходящо.Изберете в контрола.

IMHO palva предложи най-логичния вариант: да се формира таблица / ред на първата страница и да се прехвърли на втората страница в променлива на сесията.