|
Тема
|
Смяна на .ascx контоли в една страница
|
|
Автор | Memo (Нерегистриран) |
Публикувано | 18.02.05 11:51 |
|
Как може да се постигне следното:
имам една страница, в която най-отгоре имам някакви линкове/бутнои и при натискането им, в долната част на страницата да се зарежда различен .ascx контрол?
| |
Тема
|
Re: Смяна на .ascx контоли в една страница
[re: Memo]
|
|
Автор |
Survivor (X) |
Публикувано | 18.02.05 16:26 |
|
Аз на момента се сещам за поне два начина:
Първи начин: слагаш си всичките контролки, правиш ги Visible=false и към линковете/бутоните прикачаш джава скрипт, който показва и скрива каквото ти душа иска.
Втори начин: правиш си един панел, закачаш се към клик на бутоните/линковете (server-side) и в съответните хендлъри зареждаш нужната контролка в панела. За целта разгледай метода LoadControl.
но след безсънни дълги нощи станах силен и голям
и вече знам, че мога да се справя сам
| |
Тема
|
Re: Смяна на .ascx контоли в една страница
[re: Survivor]
|
|
Автор | Maлa (Нерегистриран) |
Публикувано | 18.02.05 16:54 |
|
това с криенето и показването е добра идея, но при условие, че не са много контролките и са сравнително малки. Причината е ViewState. Попринцип се препоръчва да се следи размера му, заради перформанса. В MSDN има статии за това. Ако са много и голени контролите по-добре използвай втория вариант.Слагаш Placeholder и с LoadControl зареждаш сътветната контрола. Там обаче дерта е, че е stateless, т.е ViewState отива на кино. Има едно (според мен добро) решение. То е да не използваш стандартния Placeholder, а DynamicControlPlaceHolder.
| |
Тема
|
Re: Смяна на .ascx контоли в една страница
[re: Memo]
|
|
Автор | Memo (Нерегистриран) |
Публикувано | 18.02.05 18:16 |
|
Благодаря ви много за отговорите!!!
:)
| |
Тема
|
Re: Смяна на .ascx контоли в една страница
[re: Memo]
|
|
Автор |
Гypy (бенгбъс драйвър) |
Публикувано | 19.02.05 20:17 |
|
Може и директно без юзър контроли ако ти е проблем да ги ползваш.
<asp:panel> - за всеки диалог вместо в .ascx слагаш нещата в панели, които са Visible=False и в евент хендлъра на бутоните / линковете правиш видим само този, който ти трябва. Това е подобно на Survivor, но няма всичко да е на клиента и само това което ти трябва и може да ти е по-лесно ако не знаеш Джаваскрипт.
Минуса е, че ще иска постбак при всяка смяна и че всичко трябва да е в един файл. В 2.0 ще има партиал классес и файл-овете ще могат да се цепят на части.
--
Sometimes the sole purpose of your life is to serve as a warning to others.
| |
Тема
|
Re: Смяна на .ascx контоли в една страница
[re: Memo]
|
|
Автор | tralala (Нерегистриран) |
Публикувано | 21.02.05 15:13 |
|
Мисля, че е по-чисто, ако използваш Page.LoadControl. Подаваш пътя до контрола и той се зарежда динамично. Няма мужда от панели. Поне аз така правя на някои места.
| |
|
|
|
|