Jak funguji metody ClientScriptManager

U vsech zde zminovanych metod musite zadat do prvniho argumentu typ klientskeho skriptu, pro ktery chcete registrovat predany kod. Kdyz se budete pohybovat kontextove v strance(Page), staci napsat GetType(). Dale vsechny metody vyzaduji nazev/ klic skriptu ktery si prejete registrovat, aby se nestalo pri spravnem pouzivani, ze byste vlozili stejny skript vicekrat(napriklad pri PostBacku). Vycet metod zde neni kompletni, zminovany jsou pouze ty kterym aspon trochu dobre rozumim. Do vsech metod jsem predaval pouze tento JS – prikaz();.
1. RegisterClientScriptBlock – Dava vstup, ktery ji predate do 3. parametru, do bloku. Pokud nespecifikujete 4 argument nebo jej nastavite na false, neprida se na zacatek vstupu .

2. RegisterClientScriptInclude - Tato metoda v pretizeni pracuje i bez tridy(Type), pak ma 2 argumenty - klic a adresu uri. Vygeneruje nasledujici kod do casti:
3. RegisterHiddenField - kod v C#  Page.ClientScript.RegisterHiddenField("hfSecret", "pa$$word"); vygeneruje nasledujici: - samozrejme do casti.
4. RegisterOnSubmitStatement - Ma 3 parametry - typ, klic a Javascript. Vygeneruje vam metodu podobnou nasledujici do casti, i kdyz o trochu nize nez predesle metody:

 
Jedine co jsem zadal do metody byl text prikaz();, vsechno ostatni je vygenerovano automaticky. U teto metody nemuze byt treti parametr(JS kod) prazdny(String.Empty).
 
5. RegisterStartupScript - Pokud nezadate 4. parametr, opet se vam vlozi do stranky pouze text ktery jste zadali do parametru 3. Tentokrat se ale vlozi na konec stranky, pred konec posledniho tagu
, ktery je v ASP.NET vetsinou jen jeden. Pokud do 4. parametru zadate True, dostanete nejaky takovy vystup.

Takze jak vidite, zadna metoda nevklada JavaScript do tagu. Nejake reseni ze stackoverflow naleznete na

, ja se budu taky objevit neco sam pro sebe. Uz jsem mel, ale toto mi zcela nepochopitelne enkoduje naprikal " nebo ' na ' a jine entity.
 
EDIT: Tak uz jsem objevil zpusob jak vlozit doscript, zde pouze JavaScript ale uprava je snadna:

Leave a Reply