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:
1 |
<script type="text/javascript"><br />//<![CDATA[<br />function WebForm_OnSubmit() {<br />prikaz();<br />return true;<br />}<br />// |
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
1 2 3 4 5 |
internal static void InjectInternalScript(Page page, string javaScript) { StringBuilder sb = new StringBuilder(); sb.Append(" <script javascript="" sb.append="" text="" type="">"); sb.Append(javaScript); sb.Append(" </script>"); LiteralControl lc = new LiteralControl(sb.ToString()); page.Header.Controls.Add(lc); } |