Rychlý přehled

1. Základní informace

  • JavaScript je programový kód, který se spouští na straně klienta ve webovém prohlížeči.
  • JavaScriptový kód může být vykonán:
    • z ovládacího prvku „JavaScript“ v editačním formuláři,
    • z ovládacího prvku „JavaScript“ na nahlížecí stránce,
    • po stisknutí tlačítka umístěného v editačním formuláři,
    • po stisknutí tlačítka umístěného na nahlížecí stránce,
    • při vyvolání JavaScriptových událostí databázových ovládacích prvků v editačním formuláři („OnBlur“, „OnChange“, „OnClick“, „OnFocus“),
    • z tlačítka vedle textového pole nebo cizího klíče, z JavaScriptu tlačítek „Uložit“, „Smazat“ a „Zpět“ a z výchozí hodnoty textového pole typu JavaScript,
    • z tagu <script> v ovládacích prvcích „HTML“ a „RichText“.
  • V JavaScriptu lze používat následující typy proměnných a volání:
    • textové proměnné NET Genia – například „#today#“,
    • textové proměnné, které se pomocí identifikátorů odkazují na objekty databázových ovládacích prvků editačního formuláře v objektovém modelu HTML dokumentu – „#ng_#“,
    • textové proměnné, které se pomocí identifikátorů odkazují na hodnoty ovládacích prvků v okamžiku vykreslení editačního formuláře – „#ng_:value#“. Hodnotu dosadí server (uloženou hodnotu, výchozí hodnotu nebo hodnotu odeslanou formulářem); nejde o živou hodnotu v prohlížeči, tu vrací funkce „control_GetValue(#ng_#)“,
    • textové proměnné, které se pomocí identifikátorů odkazují na aktuální hodnoty uložené v databázi – „#ng_:history#“,
    • rozšířené textové proměnné, které se pomocí identifikátorů odkazují na tabulku obsahující databázový ovládací prvek – „#ng_:Table#“.
      • Databázové ovládací prvky jsou v editačním formuláři řazeny pod sebou a jsou technicky umístěny v HTML tabulkách (<table>...</table>).
      • Každý databázový ovládací prvek je umístěn ve vlastní tabulce, jejíž viditelnost je možné měnit (například #ng_:Table#.style.display = 'none';).
    • rozšířené textové proměnné, které se pomocí identifikátorů odkazují na popisek (label) databázového ovládacího prvku – „#ng_:Name#“.
      • Popisky databázových ovládacích prvků jsou v editačním formuláři zobrazovány nalevo od samotného ovládacího prvku a jsou umístěny v HTML elementech <label>...</label>.
      • Každému databázovému ovládacímu prvku odpovídá jeden popisek, jehož zobrazovaný text lze v JavaScriptu měnit (například #ng_:Name#.innerHTML = 'abc';).
    • volání JavaScriptových funkcí NET Genia – například „control_Enable(#ng_#);“,
    • volání serverových funkcí NET Genia – například „SQL(SELECT ...)“ nebo „SQLARRAY(SELECT ...)“,
    • volání externích funkcí napsaných v jazyce C# – například „ngef(MyFirstFunction, #today#)“.
  • Proměnné, serverové i externí funkce vyhodnotí server jednou, při vykreslení stránky – do prohlížeče se dostane jen jejich výsledek. Funkci, jejíž název se shoduje s názvem serverové funkce (např. „function lower(s)“), server také vyhodnotí; vlastní javascriptové funkce se proto takto nepojmenovávají.
  • Dosazené hodnoty se do kódu vkládají bez escapování. Text zadaný uživatelem (hodnota prvku, výsledek funkce „SQL“, přihlašovací jméno) proto může uvnitř řetězce '...' kód rozbít nebo změnit jeho význam – do kódu je proto vhodné vkládat jen hodnoty, jejichž obsah je pod kontrolou, a texty zadané uživateli číst až v prohlížeči funkcí „control_GetValue“.
  • NET Genium při vykreslení v kódu přepíše volání „alert(“ a „confirm(“ na vlastní funkce „alert2(“ a „confirm2(“, které z textu odstraní HTML tagy, a volání „translate(“ na verzi doplněnou o jazyk uživatele. Přepis se týká jen volání, před kterým není písmeno, číslice, podtržítko, tečka ani znak „$“ (u „translate(“ navíc ani uvozovka, apostrof či pomlčka); „translate(“ se navíc nepřepíše v deklaraci CSS „transform:“ (např. „transform: translate(10px, 5px)“).
  • JavaScript se v prostředí NET Genium nejčastěji používá pro:
    • čtení a nastavování hodnot databázových ovládacích prvků,
    • validaci hodnot zadaných uživatelem,
    • změnu vlastností a chování databázových ovládacích prvků,
    • skrývání nebo zobrazování částí editačního formuláře,
    • načítání nebo ukládání dat pomocí AJAXových požadavků.

2. Proměnné

  • nID – ID aktuálně otevřeného záznamu v editačním formuláři (není doporučeno používat #id#); na nahlížecí stránce má hodnotu 0
  • sID – textová podoba nID (string); na nahlížecí stránce není definována
  • Page_IsPostBack – Stránka je načtena po provedení postbacku; proměnná je dostupná v editačním formuláři a na nahlížecí stránce a odráží první načtení stránky nebo klasické odeslání formuláře, nikoli ajaxovou aktualizaci
  • dateSeparator – Oddělovač datumu (obvykle „.“)
  • numberSeparator – Oddělovač desetinných míst (obvykle „,“)
  • dialogYes – Popisek kladného tlačítka dialogu v jazyce přihlášeného uživatele (obvykle „Ano“), určený pro funkce „jsConfirm“ a „jsDialog“
  • dialogNo – Popisek záporného tlačítka dialogu v jazyce přihlášeného uživatele (obvykle „Ne“), určený pro funkce „jsConfirm“ a „jsDialog“
  • domLib_isIE – Aktuální prohlížeč je Internet Explorer
  • domLib_isIE56 – Aktuální prohlížeč je Internet Explorer verze 5 nebo 6
  • domLib_isIE7 – Aktuální prohlížeč je Internet Explorer verze 7
  • domLib_isIE8 – Aktuální prohlížeč je Internet Explorer verze 8
  • domLib_isIE9 – Aktuální prohlížeč je Internet Explorer verze 9
  • domLib_isIE56789 – Aktuální prohlížeč je Internet Explorer ve verzích 5, 6, 7, 8 nebo 9
  • domLib_isIE10 – Aktuální prohlížeč je Internet Explorer verze 10
  • domLib_isIE11 – Aktuální prohlížeč je Internet Explorer verze 11
  • domLib_isChrome – Aktuální prohlížeč je Google Chrome, Microsoft Edge, nebo Opera verze 15 a vyšší
  • domLib_isFirefox – Aktuální prohlížeč je Mozilla Firefox
  • domLib_isSafari – Aktuální prohlížeč je Safari
  • domLib_isOpera – Aktuální prohlížeč je Opera verze 12.15 nebo nižší
  • domLib_isMobileDevice – Aktuální prohlížeč je mobilní zařízení
  • domLib_isCE – Aktuální prohlížeč zařízení Windows CE

3. Funkce

void _loadUrl(object o, string url)

Funkce načte stránku definovanou parametrem „url“ pomocí asynchronního ajaxového volání. Funkce nečeká bezprostředně na odpověď serveru, po jejím zavolání pokračuje provádění javascriptového kódu. Parametr „o“ je pomocný objekt (guard), pomocí něhož se zabrání paralelním voláním na stejném objektu – pokud dosud nepřišla odpověď, nové volání se přeskočí. Pro paralelní volání použijte „new Object()“ jako parametr „o“.

Příklad:

var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction,' + urlEncode(p0) + ',' + urlEncode(p1));
 

void _loadUrl(object o, string url, string/function f)

Stejně jako předchozí varianta, ale po přijetí odpovědi zavolá callback „f“. Výsledný HTML kód stránky je funkci „f“ předán jako první parametr. Parametr „f“ může být název funkce (string) nebo přímá reference na funkci.

Příklad:

function ajaxTest()
{
var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction,' + urlEncode(p0) + ',' + urlEncode(p1), ajaxResponse);
}

function ajaxResponse(html)
{
alert(html);
}

for (var i = 0; i < 5; i++)
{
ajaxTest();
}
 

void _loadUrl(object o, string url, string/function f, string id)

Stejně jako předchozí varianta. Volitelný parametr „id“ je funkci „f“ předán jako druhý parametr.

Příklad:

function ajaxTest(id)
{
var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction,' + urlEncode(p0) + ',' + urlEncode(p1), ajaxResponse, id);
}

function ajaxResponse(html, id)
{
alert(id + ': ' + html);
}

for (var i = 0; i < 5; i++)
{
ajaxTest(i);
}
 

void _loadUrl(object o, string url, string/function f, string id, string params)

Stejně jako předchozí varianta. Parametr „params“ je odeslán v těle požadavku metodou POST (formát: klíč=hodnota&klíč2=hodnota2). Metoda POST se použije vždy, když „params“ není „null“, tedy i pro prázdný řetězec. Callback „f“ se volá jen při odpovědi s HTTP statusem 200, a to s parametry (html, id, headers).

Stránka „ngef.aspx“ hodnoty z těla požadavku do pole „args“ nepředává – externí funkce si je přečte metodou „conn.Page.Form("p0")“. Parametry v URL za otazníkem se nejdříve celé dekódují a teprve potom dělí podle čárek, takže hodnota obsahující čárku patří do „params“. Neautorizované volání externí funkce vrátí text „UNAUTHORIZED“ (se statusem 200).

Příklad:

function ajaxTest(id)
{
var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction', ajaxResponse, id, 'p0=' + urlEncode(p0) + '&p1=' + urlEncode(p1));
}

function ajaxResponse(html, id)
{
alert(id + ': ' + html);
}

for (var i = 0; i < 5; i++)
{
ajaxTest(i);
}
 

void _loadUrl(object o, string url, string/function f, string id, string params, string errorMessage)

Rozšíření předchozí varianty o parametr „errorMessage“. Pokud server vrátí HTTP status jiný než 200, zobrazí se uživateli dialog s textem „errorMessage“. Parametrem „errorMessage“ může být i funkce, která se v takovém případě zavolá.

Příklad:

_loadUrl(new Object(), 'ngef.aspx?MyFunction', ajaxResponse, null, null, 'Chyba při načítání dat.');
 

void attachEvent2(object o, string type, function listener)

Funkce připojí funkci „listener“ k události objektu „o“. „Type“ definuje typ události, např. load, scroll apod. Interně používá addEventListener (moderní prohlížeče) nebo attachEvent (IE starší).

Příklad:

attachEvent2(window, 'load', function () { alert('onload1'); });
attachEvent2(window, 'load', test);

function test()
{
alert('onload2');
}
 

void bt_Click()

Funkce vyvolá znovunačtení formuláře (postback) kliknutím na tlačítko btUpdate. Při této události dojde ke znovunačtení dat všech tabulek, kalendářů, grafů, apod. Tato funkce byla nahrazena funkcí „form_Update“. Na stránce bez formuláře funkce místo kliknutí obnoví stránku.

Příklad:

bt_Click();
 

void bt_Click(string id)

Funkce vyvolá programové kliknutí na tlačítko zadané parametrem „id“. Funkce se nejdříve snaží vyhledat prvek s daným ID, a pokud nenajde, tak s daným textem. Interně používá příznak „_bt_Click“ pro zabránění dvojkliku: z javascriptu je možné vyvolat pouze jeden postback v jednom okamžiku a další volání funkce „bt_Click“ se tiše ignorují, dokud stránka nezpracuje první z nich.

Příklad:

bt_Click(BT123);
bt_Click('Uložit');
 

void bt_Click(string id, string name, string value)

Rozšíření předchozí varianty. Před kliknutím na tlačítko vloží do formuláře skryté pole s názvem „name“ a hodnotou „value“. Umožňuje předat dodatečný parametr při postbacku. Názvy „action“ a „action-submit“ jsou vyhrazené pro vlastní postback NET Genia – skryté pole s takovým názvem by kliknutí na tlačítko zneplatnilo.

Příklad:

bt_Click(BT123, 'akce', 'delete');
 

bool bt_Eval(object bt, string url, string/function f)

Funkce při stisknutí tlačítka načte stránku definovanou parametrem „url“ pomocí AJAXu a pomocí validující funkce „f“ ověří načtený HTML kód. Při prvním zavolání (AJAX probíhá) vrátí „false“ a zabrání výchozí akci tlačítka. Jakmile přijde odpověď, zavolá „f“ s výsledkem – pokud „f“ vrátí „true“, tlačítko se znovu klikne a akce proběhne. Parametr „f“ může být název funkce nebo přímá reference. Funkce „f“ dostane jako parametry (html, url).

Příklad:

1. varianta:
return bt_Eval(this, 'ngef.aspx?test', 'evalFunction');

2. varianta
return bt_Eval(this, 'ngef.aspx?test', ajaxResponse);

function ajaxResponse(html)
{
return confirm('Response: ' + html);
}

3. varianta
return test(this);

function test(bt)
{
if (!bt_Eval(bt, 'ngef.aspx?test', ajaxResponse)) return false;
return confirm('Continue?');
}

function ajaxResponse(html)
{
return confirm('Response: ' + html);
}
 

object bt_FindByText(string text, int index)

Funkce vrací tlačítko s titulkem zadaným parametrem „text“. Parametr „index“ je volitelný a říká, kolikátý výskyt tlačítka s titulkem „text“ má funkce vrátit. Číslování probíhá od nuly.

Příklad:

var bt = bt_FindByText('Dnes', 2); // Vrací objekt třetího tlačítka s názvem „Dnes“
 

void bt_Icon(object bt, string url)

Funkce nastaví na pozadí tlačítka obrázek definovaný parametrem „url“.

Příklad:

bt_Icon(el(BT123), 'Images/MD/Content/ic_add_white_18dp.png');
 

void bt_PleaseWait(object bt)

Funkce zobrazí na tlačítku stav „načítání“ – uloží původní hodnotu a šířku tlačítka a zobrazí text „Prosím čekejte...“. Tlačítko je zároveň zakázáno.

Příklad:

bt_PleaseWait(el(BT123));
 

void bt_PleaseWait2(object bt)

Funkce obnoví tlačítko do původního stavu po dokončení načítání (protějšek funkce „bt_PleaseWait“).

Příklad:

bt_PleaseWait2(el(BT123));
 

void button_Disable(o)

Funkce disabluje tlačítko zadané parametrem „o“ v editačním formuláři. Parametrem je ID tlačítka; předaný element funkce ignoruje.

Příklad:

button_Disable(BT123);
 

void button_Enable(o)

Funkce enabluje tlačítko zadané parametrem „o“ v editačním formuláři. Parametrem je ID tlačítka; předaný element funkce ignoruje.

Příklad:

button_Enable(BT123);
 

void buttons_Disable()

Funkce disabluje všechna tlačítka typu „Button“ v editačním formuláři. Tlačítka „Uložit“, „Smazat“ a „Zpět“ zůstávají beze změny.

Příklad:

buttons_Disable();
 

void buttons_Enable()

Funkce enabluje všechna tlačítka typu „Button“ v editačním formuláři. Tlačítka „Uložit“, „Smazat“ a „Zpět“ zůstávají beze změny.

Příklad:

buttons_Enable();
 

void cb_Disable(object cb)

Funkce zakáže editaci ovládacího prvku „ComboBox“ zadaného parametrem „cb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

cb_Disable(#ng_combobox#);
 

void cb_Enable(object cb)

Funkce povolí editaci ovládacího prvku „ComboBox“ zadaného parametrem „cb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

cb_Enable(#ng_combobox#);
 

void chb_Disable(object chb)

Funkce zakáže editaci ovládacího prvku „CheckBox“ zadaného parametrem „chb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

chb_Disable(#ng_checkbox#);
 

void chb_Display(object chb, object o, bool reverse)

Funkce skryje nebo zobrazí element zadaný parametrem „o“ podle toho, zda je checkbox definovaný parametrem „chb“ zaškrtnutý. Parametr „reverse“ (volitelný, výchozí „false“) invertuje chování: při „true“ se element skryje, pokud je checkbox zaškrtnutý. Funkce se nejčastěji používá v události „OnClick“ u checkboxu. V administrátorském režimu funkce nic nedělá, aby zůstaly vidět všechny ovládací prvky.

Příklad:

chb_Display(this, 'D1');
chb_Display(this, 'D1', true);
chb_Display(this, #ng_textbox#);
chb_Display(this, #ng_textbox#, true);
chb_Display(#ng_checkbox#, 'D1');
chb_Display(#ng_checkbox#, #ng_textbox#);
 

void chb_Enable(object chb)

Funkce povolí editaci ovládacího prvku „CheckBox“ zadaného parametrem „chb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

chb_Enable(#ng_checkbox#);
 

string Color2Hex(string value)

string Color2Hex(string value, string def)

Funkce formátuje barvu zadanou parametrem „value“ do hexadecimálního formátu „#rrggbb“. Funkce dokáže zpracovat:

  • Formát „R,G,B“ (např. „255,0,0“ vrací „#ff0000“)
  • 6místný hex bez # (např. „ff0000“ vrací „#ff0000“)
  • Řetězec o délce 7 znaků, který vrátí beze změny – předpokládá se zápis „#rrggbb“, formát se neověřuje
  • Předpony „B“, „I“, „BI“, „IB“, „N“ jsou automaticky odstraněny před zpracováním
  • Podmíněný formát barev podle data: „barva@datum1@barva1@datum2@barva2“ – vrací barvu podle aktuálního data

Pokud hodnotu nelze zpracovat, vrací parametr „def“, nebo „#ffffff“ pokud „def“ není zadán.

Příklad:

var s = Color2Hex('255,128,0');   // Vrací „#ff8000“
var s = Color2Hex('B#336699'); // Vrací „#336699“ (prefix B odstraněn)
var s = Color2Hex('255,128', '#000000'); // Vrací „#000000“
 

void control_Disable(object o)

Funkce zakáže editaci ovládacího prvku definovaného parametrem „o“. Interně rozpozná typ prvku (TextBox, ComboBox, ForeignKey, CheckBox, atd.) a zavolá příslušnou typově specifickou funkci.

Příklad:

control_Disable(#ng_ovladaciprvek#);
 

void control_Disable(object o, bool disableLink)

Funkce zakáže editaci ovládacího prvku definovaného parametrem „o“. Volitelný parametr „disableLink“ (true/false) určuje, zda se má u ovládacího prvku „ForeignKey“ deaktivovat odkaz na vybraný záznam.

Příklad:

control_Disable(#ng_ovladaciprvek#);
control_Disable(#ng_ovladaciprvek#, false);
 

void control_Enable(object o)

Funkce povolí editaci ovládacího prvku definovaného parametrem „o“.

Příklad:

control_Enable(#ng_ovladaciprvek#);
 

void control_Enable(object o, bool ignorereadonly)

Funkce povolí editaci ovládacího prvku. Pokud je nastaven atribut „ngreadonly“, funkce ho standardně respektuje a prvek nepovolí. Parametr „ignorereadonly=true“ toto chování přepíše a prvek povolí i přes „ngreadonly“.

Příklad:

control_Enable(#ng_ovladaciprvek#, true);
 

string control_GetValue(object o)

Funkce vrací hodnotu databázového ovládacího prvku zadaného parametrem „o“. Chování podle typu prvku:

  • „TextBox“ s časem – vrátí datum i čas (formát „dd.MM.yyyy HH:mm“)
  • „MultiListBox“ – vrátí vybrané hodnoty oddělené tabulátorem (\t); interně nahrazuje oddělovač [*VS*]
  • „Radio“ – vrátí hodnotu vybraného radio tlačítka
  • „CheckBox“ – vrátí hodnotu atributu „chv“ (hodnota při zaškrtnutí) nebo „“ při nezaškrtnutí
  • „RichTextBox“ – vrátí innerHTML body elementu v iframe
  • „ComboBox“/„ForeignKey“/„ListBox“ – vrátí hodnotu z INPUT nebo SELECT dle implementace

Příklad:

var s = control_GetValue(#ng_ovladaciprvek#);
 

void control_ResizeTable(object o, int width)

Funkce nastaví šířku tabulky, ve které je zobrazen ovládací prvek zadaný parametrem „o“, na novou šířku zadanou parametrem „width“.

Příklad:

control_ResizeTable(#ng_ovladaciprvek:Table#, 60);
 

void control_Save(object o)

Funkce uloží hodnotu databázového ovládacího prvku do databáze pomocí ajaxu. Při uložení se nevykonávají události „OnBeforeSave“ ani „OnAfterSave“ a neprovádí se validace ovládacích prvků; vyplní se jen výchozí hodnoty ovládacích prvků s volbou „Vyplnit výchozí hodnotu před každým uložením záznamu do databáze“. U nového, dosud neuloženého záznamu funkce místo toho uloží celý editační formulář běžným způsobem – včetně validace a událostí „OnBeforeSave“ a „OnAfterSave“.

Uložení funguje jen tehdy, je-li volání „control_Save“ doslovně zapsané v JavaScriptu nebo v událostech ovládacích prvků daného editačního formuláře a formulář není zablokovaný proti úpravám; jinak ho server odmítne. Ovládací prvek pro heslo se touto funkcí neuloží; hodnota šifrovaného ovládacího prvku se zašifruje stejně jako při uložení editačního formuláře.

Příklad:

control_Save(#ng_ovladaciprvek#);
 

void control_Save(object o, string f, string errorMessage)

Funkce uloží hodnotu databázového ovládacího prvku do databáze pomocí ajaxu. Parametr „f“ je callback volaný po odpovědi serveru s textem „OK“, nebo „ERROR“ následovaným na dalším řádku chybovým hlášením. Parametr „errorMessage“ definuje text hlášení, které se zobrazí, pokud server odpoví jiným HTTP statusem než 200. U nového, dosud neuloženého záznamu se uloží celý formulář a callback „f“ se nezavolá.

Příklad:

control_Save(#ng_ovladaciprvek#, ajaxResponse, 'Vyskytla se chyba');

function ajaxResponse(status)
{
alert(status);
}
 

void control_SetDirection(object o, string direction)

Funkce nastaví směr textu (RTL/LTR) na ovládacím prvku „TextBox“, „TextArea“ nebo „RichTextBox“.

Příklad:

control_SetDirection(#ng_textbox#, 'rtl');
control_SetDirection(#ng_textbox#, 'ltr');
 

void control_SetValue(object o, var value [, var value2])

Funkce vloží do databázového ovládacího prvku zadaného parametrem „o“ hodnotu definovanou parametrem „value“. Podrobnosti:

  • „TextBox“ s validací Date nebo DatePicker: „value“ může být string „dd.MM.yyyy HH:mm“ nebo objekt Date. Volitelný „value2“ je čas „HH:mm“ (jen pro TextBox s časem).
  • „CheckBox“: pokud je „value“ boolean, přímo nastaví zaškrtnutí. Pokud je string, porovnává se s atributem „chv“.
  • „ForeignKey“: nastaví ID záznamu; hodnota 0 vymaže i zobrazený text, jiná hodnota zobrazený text nezmění – ten obnoví funkce „fk_Update“.
  • „DatePicker“, „RichTextBox“ a „MultiListBox“: po nastavení spustí událost „onchange“.
  • „MultiListBox“: „value“ jsou ID oddělená středníkem nebo tabulátorem a „value2“ je pole dvojic [id, text], podle kterého se ID převedou na texty.
  • „TextBox“, „ComboBox“ a „ListBox“: událost „onchange“ se nespustí.

Příklad:

control_SetValue(#ng_ovladaciprvek#, 'Text');
control_SetValue(#ng_textbox#, 20);
control_SetValue(#ng_textbox#, '1.1.2000');
control_SetValue(#ng_textbox#, '1.1.2000', '12:34');
control_SetValue(#ng_textbox#, new Date());
control_SetValue(#ng_datepicker#, '1.1.2000');
control_SetValue(#ng_datepicker#, '1.1.2000 12:34');
control_SetValue(#ng_datepicker#, new Date());
control_SetValue(#ng_checkbox#, true);
control_SetValue(#ng_checkbox#, 'x');
control_SetValue(#ng_foreignkey#, 20);
 

void controls_Disable()

Funkce zakáže editaci všech ovládacích prvků (kromě buttonů) v editačním formuláři.

Příklad:

controls_Disable();
 

void controls_Disable(bool disableLinks)

Funkce zakáže editaci všech ovládacích prvků (kromě buttonů) v editačním formuláři. Volitelný parametr „disableLinks“ (true/false) určuje, zda se má u ovládacích prvků „ForeignKey“ deaktivovat odkaz na vybraný záznam.

Příklad:

controls_Disable();
controls_Disable(false);
 

void controls_Enable()

Funkce povolí editaci všech ovládacích prvků (kromě buttonů) v editačním formuláři.

Příklad:

controls_Enable();
 

void controls_Join(object[] array)

Funkce spojí ovládací prvky definované parametrem „array“ do skupiny, ve které jsou vidět všechny prvky až po poslední vyplněný a jeden další – prázdné prvky mezi vyplněnými zůstávají vidět. Hodnota „0“ se považuje za prázdnou. Funkce zároveň napojí na prvky událost „change“, takže se skupina při každé změně hodnoty automaticky překreslí; stačí ji proto zavolat jednou při načtení formuláře. Druhý parametr funkce je vyhrazen pro interní použití a nezadává se.

Příklad:

controls_Join([#ng_ovladaciprvek1#, #ng_ovladaciprvek2#, #ng_ovladaciprvek3#]);
controls_Join(new Array(#ng_ovladaciprvek1#, #ng_ovladaciprvek2#, #ng_ovladaciprvek3#));
 

void controls_Save(object[] array)

Funkce uloží hodnoty databázových ovládacích prvků do databáze pomocí ajaxu. Při uložení se nevykonávají události „OnBeforeSave“ ani „OnAfterSave“ a neprovádí se validace ovládacích prvků; vyplní se jen výchozí hodnoty ovládacích prvků s volbou „Vyplnit výchozí hodnotu před každým uložením záznamu do databáze“. U nového, dosud neuloženého záznamu se uloží celý editační formulář běžným způsobem. Stejně jako u funkce „control_Save“ musí být volání doslovně zapsané v JavaScriptu nebo v událostech ovládacích prvků daného formuláře, ovládací prvek pro heslo se neuloží a hodnota šifrovaného ovládacího prvku se zašifruje.

Příklad:

controls_Save([#ng_ovladaciprvek1#, #ng_ovladaciprvek2#]);
controls_Save(new Array(#ng_ovladaciprvek1#, #ng_ovladaciprvek2#));
 

void controls_Save(object[] array, string f, string errorMessage)

Funkce uloží hodnoty databázových ovládacích prvků do databáze pomocí ajaxu. Parametr „f“ je callback volaný s textem „OK“, nebo „ERROR“ následovaným na dalším řádku chybovým hlášením. Parametr „errorMessage“ definuje text hlášení, které se zobrazí, pokud server odpoví jiným HTTP statusem než 200.

Příklad:

controls_Save([#ng_ovladaciprvek1#, #ng_ovladaciprvek2#], ajaxResponse, 'Vyskytla se chyba');

function ajaxResponse(status)
{
alert(status);
}
 

string cookie_Get(string name)

Funkce vrací obsah cookie zadané parametrem „name“ ze stránky. Čte z document.cookie.

Příklad:

var s = cookie_Get('loginname');
 

void cookie_Set(string name, string value)

Funkce nastaví cookie prohlížeče pomocí AJAXového volání na stránku „SaveCookie.aspx“, která cookie odešle v odpovědi serveru. Výsledkem je běžná cookie prohlížeče s platností 6 měsíců, kterou lze přečíst funkcí „cookie_Get“ i serverovým kódem. Funkce přijímá volitelné parametry „f“ (callback), „id“ a „errorMessage“ stejně jako funkce „_loadUrl“. Cookie, jejíž název začíná textem „SessionGuid_“ nebo „ASP.NET_“, funkce nenastaví – tyto cookie patří přihlášení uživatele.

Příklad:

cookie_Set('TestCookie', 'Testovací cookie');
 

bool copyToClipboard(string value, string info [, object e])

Funkce zkopíruje hodnotu zadanou parametrem „value“ do schránky. Parametr „info“ definuje text informativního hlášení po úspěchu. Pokud vložení nebude úspěšné, funkce vrací „false“.

Příklad:

copyToClipboard('Hodnota, která bude vložena do schránky', 'Hodnota byla úspěšně vložena do schránky.');
 

object Date (rozšíření prototypu)

Datový typ Date je rozšířen o následující metody:

  • „.addDays(n)“ – přidá n dní, vrátí nový objekt Date
  • „.addWorkDays(n)“ – přidá n pracovních dní (přeskočí víkendy a svátky), vrátí nový Date
  • „.addMonths(n)“ – přidá n měsíců, vrátí nový Date
  • „.addYears(n)“ – přidá n roků, vrátí nový Date
  • „.addHours(n)“ – přidá n hodin, vrátí nový Date
  • „.addMinutes(n)“ – přidá n minut, vrátí nový Date
  • „.monday()“ – vrátí pondělí aktuálního týdne
  • „.isWeekend()“ – vrátí true pokud je datum sobota nebo neděle
  • „.isLeapYear()“ – vrátí true pokud je přestupný rok
  • „.getDaysInMonth()“ – vrátí počet dní v měsíci
  • „.clone()“ – vrátí kopii objektu Date (zachová datum i čas)
  • „.clone2()“ – vrátí kopii Date s nulovým časem (00:00:00)

Příklad:

var d = new Date();
var tomorrow = d.addDays(1);
var nextMonth = d.addMonths(1);
var monday = d.monday();
var isWeekend = d.isWeekend();
var daysInMonth = d.getDaysInMonth();
 

object Date.addWorkDays(int n)

Přidá „n“ pracovních dní k datu, přeskočí víkendy a svátky uložené v „holidays1Cache_Array“ a „holidays2Cache_Array“. Záporná hodnota „n“ odečte pracovní dny.

Příklad:

var d = new Date(2024, 0, 1); // 1. ledna (pondělí)
var nextWorkDay = d.addWorkDays(1); // 2. ledna (úterý, pokud není svátek)
 

string Date2Str(object date)

Funkce vrací textový řetězec z data zadaného parametrem „date“ ve formátu data nastaveném v NET Geniu (pořadí dne a měsíce i oddělovač). Den a měsíc jsou doplněné nulou na dvě cifry. Pokud je čas 00:00, vrátí pouze datum; jinak datum a čas „HH:mm“.

Příklad:

var s = Date2Str(new Date());
var s = Date2Str(new Date(2000, 0, 1)); // Vrací „01.01.2000“
 

void ddl_ReplaceItems(object ddl, object array [, bool options])

Funkce nahradí položky rozbalovacího seznamu „ddl“ hodnotami z pole „array“. Každý prvek pole je [value, text]. Zachová aktuální výběr. Pokud je třetí parametr „true“, prvky pole se považují za DOM option objekty a vkládají se přímo.

Příklad:

var array = [];
array.push(['1', 'První položka']);
array.push(['2', 'Druhá položka']);
array.push(['3', 'Třetí položka']);
ddl_ReplaceItems(#ng_combobox#, array);
 

void ddl_ReplaceTexts(object ddl, object array, string separator)

Funkce nahradí texty položek rozbalovacího seznamu „ddl“ hodnotami z pole „array“. Každý prvek pole je [value, newText]. S parametrem „separator“: nový text bude „value + separator + newText“. Bez separátoru: nový text bude pouze „newText“. Nemá vliv na ukládanou hodnotu.

Příklad:

var array = [];
array.push(['1', 'První položka']);
array.push(['2', 'Druhá položka']);
array.push(['3', 'Třetí položka']);
ddl_ReplaceTexts(#ng_combobox#, array);
// ddl_ReplaceTexts(#ng_combobox#, array, ' – ');
 

string ddl_SelectedItem_Text(object ddl)

Funkce vrací text vybrané položky v rozbalovacím seznamu zadaným parametrem „ddl“.

Příklad:

var s = ddl_SelectedItem_Text(#ng_combobox#);
 

string ddl_SelectedItem_Value(object ddl)

Funkce vrací hodnotu vybrané položky v rozbalovacím seznamu zadaným parametrem „ddl“.

Příklad:

var s = ddl_SelectedItem_Value(#ng_combobox#);
 

bool ddl_SelectText(object ddl, string text)

Funkce vyhledá položku v rozbalovacím seznamu „ddl“ podle textu a vybere ji. Zavolá událost „onchange“. Pokud položka nebyla nalezena, vrátí „false“.

Příklad:

var ok = ddl_SelectText(#ng_combobox#, 'Praha');
 

bool ddl_SelectText_NoChange(object ddl, string text)

Stejně jako „ddl_SelectText“, ale událost „onchange“ se nevolá.

Příklad:

var ok = ddl_SelectText_NoChange(#ng_combobox#, 'Praha');
 

bool ddl_SelectValue(object ddl, string value)

Funkce vyhledá položku v rozbalovacím seznamu „ddl“ podle hodnoty a vybere ji. Zavolá událost „onchange“. Pokud položka nebyla nalezena, vrátí „false“.

Příklad:

var ok = ddl_SelectValue(#ng_combobox#, '1');
 

bool ddl_SelectValue_NoChange(object ddl, string value)

Stejně jako „ddl_SelectValue“, ale událost „onchange“ se nevolá.

Příklad:

var ok = ddl_SelectValue_NoChange(#ng_combobox#, '1');
 

void ddl_SortByText(object ddl)

Funkce seřadí abecedně položky rozbalovacího seznamu „ddl“ podle textů jednotlivých položek.

Příklad:

ddl_SortByText(#ng_combobox#);
 

void ddl_SortByText2(object ddl)

Funkce seřadí numericky položky rozbalovacího seznamu „ddl“ podle textů jednotlivých položek.

Příklad:

ddl_SortByText2(#ng_combobox#);
 

void ddl_SortByValue(object ddl)

Funkce seřadí abecedně položky rozbalovacího seznamu „ddl“ podle hodnot jednotlivých položek.

Příklad:

ddl_SortByValue(#ng_combobox#);
 

void ddl_SortByValue2(object ddl)

Funkce seřadí numericky položky rozbalovacího seznamu „ddl“ podle hodnot jednotlivých položek.

Příklad:

ddl_SortByValue2(#ng_combobox#);
 

void detachEvent2(object o, string type, function listener)

Funkce odpojí funkci „listener“ od události objektu „o“.

Příklad:

attachEvent2(window, 'load', test);
detachEvent2(window, 'load', test);

function test()
{
alert('onload');
}
 

bool dg_ColumnWidth(object dg, int cid, int width)

Funkce nastaví šířku sloupce „cid“ v datagridu „dg“ na hodnotu „width“. Číselná hodnota se bere v pixelech; lze zadat i text s jednotkou (např. „20%“). Vrací „true“, pokud sloupec našla.

Příklad:

dg_ColumnWidth(DG123, 456, 200);
 

object[] dg_Controls(object dg)

Funkce vrací pole všech editovatelných ovládacích prvků uvnitř datagridu „dg“.

Příklad:

var array = dg_Controls(DG123);
 

void dg_DenyOpen(object dg)

Funkce zakáže otevírání záznamů z datagridu kliknutím.

Příklad:

dg_DenyOpen(DG123);
 

void dg_Disable()

Funkce zakáže editaci všech ovládacích prvků určených pro hromadnou editaci ve všech datagridech. Funkce zasáhne všechna pole formuláře na stránce, která nemají ID ani název, a skryje také odkazy pro otevření záznamu.

Příklad:

dg_Disable();
 

void dg_Disable(object dg)

Funkce zakáže editaci všech ovládacích prvků určených pro hromadnou editaci v konkrétním datagridu.

Příklad:

dg_Disable(DG123);
 

void dg_Enable()

Funkce povolí editaci všech ovládacích prvků určených pro hromadnou editaci ve všech datagridech. Funkce zasáhne všechna pole formuláře na stránce, která nemají ID ani název, a zobrazí také odkazy pro otevření záznamu.

Příklad:

dg_Enable();
 

void dg_Enable(object dg)

Funkce povolí editaci všech ovládacích prvků určených pro hromadnou editaci v konkrétním datagridu.

Příklad:

dg_Enable(DG123);
 

bool dg_HideColumn(object dg, int cid)

Funkce skryje sloupec zadaný parametrem „cid“ v datagridu „dg“. ID sloupce odpovídá ID ovládacího prvku.

Příklad:

dg_HideColumn(DG123, 123);
 

void dg_HideHeader(object dg)

Funkce skryje nadpis datagridu. Parametr může být objekt datagridu nebo string s nadpisem.

Příklad:

dg_HideHeader(DG123);
dg_HideHeader('Nadpis tabulky');
 

void dg_SearchColumns(object dg, array cids)

Funkce zaškrtne vyhledávání pro sloupce definované polem „cids“ v datagridu „dg“.

Příklad:

dg_SearchColumns(DG123, [1, 2, 3]);
 

bool dg_ShowColumn(object dg, int cid)

Funkce zobrazí skrytý sloupec „cid“ v datagridu „dg“.

Příklad:

dg_ShowColumn(DG123, 123);
 

void dg_Update(object dg [, function f])

Funkce znovu načte datagrid „dg“ pomocí AJAXu. Volitelný parametr „f“ je callback volaný po dokončení načtení. Funkce se převádí na text, takže nemá přístup k lokálním proměnným volajícího kódu. Obsahuje-li stránka JavaScript, který upravuje DOM datagridu, načte se datagrid celým odesláním stránky.

Příklad:

dg_Update(DG123);
dg_Update(DG123, function() { alert('Datagrid byl obnoven.'); });
 

void dg_VisibleColumns(object dg, array cids)

Funkce nastaví viditelné sloupce v datagridu „dg“. Skryje všechny sloupce, které nejsou v poli „cids“.

Příklad:

dg_VisibleColumns(DG123, [1, 2, 3]);
 

void dp_Disable(object dp)

Funkce zakáže editaci ovládacího prvku „DatePicker“ zadaného parametrem „dp“.

Příklad:

dp_Disable(#ng_datepicker#);
 

void dp_Enable(object dp)

Funkce povolí editaci ovládacího prvku „DatePicker“ zadaného parametrem „dp“.

Příklad:

dp_Enable(#ng_datepicker#);
 

void dragWindow_Down(object o, object e [, int width, int height, function onMove, function onUp])

Funkce zahájí přesouvání prvku myší nebo dotykem. Uloží počáteční souřadnice, vytvoří pomocné tažené okno a připojí obsluhu pohybu a ukončení zadanou parametry „onMove“ a „onUp“.

void dragWindow_Move(object e, int threshold [, function callback, bool allowTextSelection])

Funkce zpracuje pohyb právě taženého prvku. Tažení začne až po překročení vzdálenosti „threshold“ a volitelná funkce „callback“ obdrží tažený objekt a aktuální souřadnice.

void dragWindow_Up(object e [, function onDrop, function onClick])

Funkce ukončí právě probíhající tažení, odpojí obslužné události a skryje pomocné okno. Funkci „onDrop“ zavolá po skutečném přesunu; funkci „onClick“ zavolá tehdy, pokud k přesunu nedošlo.

object el(string id)

Funkce vrací DOM objekt na webové stránce podle jeho ID. Obálka pro document.getElementById.

Příklad:

var bt = el(BT1665);
// Vrací objekt tlačítka s databázovým ID 1665
 

void evalGoogleCaptcha()

Funkce spouští validaci služby Google reCAPTCHA. Zapisuje se do klientské události tlačítka a používá se u varianty Invisible, tedy společně se serverovou funkcí „GOOGLECAPTCHAINVISIBLE“. Postup implementace je uveden v samostatné příručce Implementace Google reCAPTCHA.

Příklad:

evalGoogleCaptcha();
 

void file_Disable(object file)

Funkce zakáže editaci ovládacího prvku „File“. U tohoto prvku to znamená, že se skryje tlačítko „Procházet...“ pro vložení nového souboru (spolu s tlačítkem pro smazání a případným výběrovým dialogem); již vložený soubor zůstane zobrazený jako odkaz ke stažení. Alternativou je obecná funkce „control_Disable“.

Příklad:

file_Disable(#ng_soubor#);
 

void file_Enable(object file)

Funkce povolí editaci ovládacího prvku „File“.

Příklad:

file_Enable(#ng_soubor#);
 

void fireEvent2(object o, string type)

Funkce vyvolá obsluhu události „type“ na objektu „o“. Mimo Internet Explorer se volá jen obsluha zapsaná ve vlastnosti „on“ + „type“ (atribut „onchange“, „onclick“ apod.); posluchači přidaní funkcemi „attachEvent2“ nebo „addEventListener“ se nespustí.

Příklad:

fireEvent2(#ng_ovladaciprvek#, 'change');
 

void fk_Disable(object fk, bool disableLink)

Funkce zakáže editaci ovládacího prvku „ForeignKey“. Parametr „disableLink“ určuje, zda deaktivovat odkaz na vybraný záznam.

Příklad:

fk_Disable(#ng_foreignkey#);
fk_Disable(#ng_foreignkey#, false);
 

void fk_Enable(object fk)

Funkce povolí editaci ovládacího prvku „ForeignKey“.

Příklad:

fk_Enable(#ng_foreignkey#);
 

void fk_Update(object fk)

Funkce aktualizuje AJAXem zobrazení ovládacího prvku „ForeignKey“. Má význam při nulovém nastavení šířky prvku po použití „control_SetValue“.

Příklad:

fk_Update(#ng_foreignkey#);
 

void form_Change()

Funkce je zavolána pokaždé, kdy dojde ke změně hodnoty ovládacího prvku v editačním formuláři. Nastaví příznak „_form_Change=true“ a zajistí zobrazení varování při opuštění formuláře bez uložení. Pokud je zapnutý AutoSave, spustí 5sekundový timer pro automatické uložení.

Příklad:

form_Change();
 

void form_DisableUpdate()

Funkce zamezí automatické aktualizaci editačního formuláře po zkopírování souborových příloh nebo obrázků pomocí pickeru, případně po zkopírování hodnot do rozbalovacích seznamů nebo radio buttonů.

Příklad:

form_DisableUpdate();
 

bool form_Picker()

Funkce vrací logickou hodnotu „true“, pokud je formulář ve stavu volání JavaScriptových událostí „onchange“ u ovládacích prvků, jejichž hodnoty byly právě převzaty pomocí pickeru. Interně testuje přítomnost a stav skrytého pole „ng-picker“.

Příklad:

var ok = form_Picker();
 

void form_Save([function f])

Funkce uloží všechny hodnoty ovládacích prvků formuláře do databáze pomocí AJAXu na stránku „Save.aspx“. Volitelný parametr „f“ je callback volaný po odpovědi serveru s textem „OK“, nebo „ERROR“ následovaným chybovým hlášením. Příznak neuložených změn se zruší ihned po odeslání; skončí-li uložení chybou, formulář se znovu označí jako změněný. Při uložení se nevykonávají události „OnBeforeSave“ ani „OnAfterSave“ a neprovádí se validace ovládacích prvků. U nového, dosud neuloženého záznamu funkce místo toho uloží editační formulář běžným způsobem – včetně validace a obou událostí. Stejně jako u funkce „control_Save“ musí být volání doslovně zapsané v JavaScriptu nebo v událostech ovládacích prvků daného formuláře, ovládací prvek pro heslo se neuloží a hodnota šifrovaného ovládacího prvku se zašifruje.

Příklad:

form_Save();
form_Save(function(html) { alert(html); });
 

void form_SetMargins(int top, int right, int bottom, int left)

Funkce nastaví okraje stránky (v pixelech). Použití při tisku nebo úpravě layoutu.

Příklad:

form_SetMargins(10, 20, 10, 20);
 

void form_Update()

Funkce aktualizuje právě otevřený editační formulář – především z důvodu obnovy dat v datagridech nebo zdrojích dat jednotlivých ovládacích prvků. Interně spustí „bt_Click()“ (postback). Pokud je formulář právě ve stavu pickeru („form_Picker()“ vrací „true“), aktualizace se odloží o 500 ms. Funkce respektuje guard příznak „_form_Update“ – pokud byl nastaven na „false“, zavolání nemá efekt.

Příklad:

form_Update();
 

string Hex(int n)

Funkce převede decimální číslo zadané parametrem „n“ na hexadecimální řetězec (malá písmena). Pokud je výsledek jednoznakový, doplní se nulou na začátek; delší výsledek se nezkracuje.

Příklad:

var s = Hex(123); // Vrací „7b“
var s = Hex(15); // Vrací „0f“
var s = Hex(255); // Vrací „ff“
var s = Hex(256); // Vrací „100“
 

string htmlEncode(string value)

Funkce zakóduje speciální HTML znaky ve stringu. Kóduje znaky: & vrací &amp;, < vrací &lt;, > vrací &gt;, "" vrací &quot;, ' vrací &#39;.

Příklad:

var s = htmlEncode('<script>alert("xss")</script>');
// Vrací „&lt;script&gt;alert(&quot;xss&quot;)&lt;/script&gt;“
 

void image_Disable(object image)

Funkce zakáže editaci ovládacího prvku „Image“ zadaného parametrem „image“. Skryje se tím tlačítko „Procházet...“ pro vložení nového obrázku (spolu s tlačítkem pro smazání a případným výběrovým dialogem); již vložený obrázek zůstane zobrazený. Alternativou je obecná funkce „control_Disable“.

Příklad:

image_Disable(#ng_obrazek#);
 

void image_Enable(object image)

Funkce povolí editaci ovládacího prvku „Image“ zadaného parametrem „image“. Alternativou je obecná funkce „control_Enable“.

Příklad:

image_Enable(#ng_obrazek#);
 

int innerHeight2([object o])

Funkce vrátí vnitřní výšku okna zadaného parametrem „o“ v pixelech. Pokud parametr „o“ není zadán, použije se objekt „window“. Správně pracuje s různými prohlížeči (IE/Edge, Firefox, Safari, Chrome).

Příklad:

var n = innerHeight2();
 

string innerText2(object o [, string value])

Funkce bez parametru „value“ vrátí textový obsah prvku „o“. Je-li „value“ zadán, nastaví textový obsah prvku. Sjednocuje rozdíly mezi vlastnostmi „innerText“ a „textContent“ v podporovaných prohlížečích.

Příklad:

var text = innerText2(#ng_popis:Name#);
innerText2(#ng_popis:Name#, 'Nový název');
 

int innerWidth2([object o])

Funkce vrátí vnitřní šířku okna zadaného parametrem „o“ v pixelech. Pokud parametr „o“ není zadán, použije se objekt „window“. Správně pracuje s různými prohlížeči (IE/Edge, Firefox, Safari, Chrome).

Příklad:

var n = innerWidth2();
 

void InsertTime(object tb)

Funkce vloží aktuální čas ve formátu „HH:mm“ do textového pole definovaného parametrem „tb“. Událost „onchange“ ani příznak změny formuláře se nespustí.

Příklad:

InsertTime(#ng_textbox#);
 

string Int2Roman(int n)

Funkce převede celé číslo na římské číslice. Podporuje hodnoty 1–3999. Pro hodnoty mimo rozsah vrátí prázdný řetězec.

Příklad:

var s = Int2Roman(14);   // Vrací „XIV“
var s = Int2Roman(2024); // Vrací „MMXXIV“
var s = Int2Roman(0); // Vrací „“
 

string Int2Time(int n)

Funkce převede celkový počet minut na čas ve formátu „HH:mm“ s hodinami doplněnými nulou na dvě cifry. Správně zpracuje záporné hodnoty.

Příklad:

var s = Int2Time(90);  // Vrací „01:30“
var s = Int2Time(-15); // Vrací „-00:15“
var s = Int2Time(0); // Vrací „00:00“
 

bool isImage(string filename)

Funkce vrátí „true“, pokud název souboru má příponu obrázku: bmp, dib, emf, gif, ico, jfif, jpe, jpeg, jpg, png, rle, svg, tif, tiff nebo wmf. Přípona „webp“ mezi nimi není.

Příklad:

var b = isImage('foto.jpg'); // Vrací true
var b = isImage('dokument.pdf'); // Vrací false
 

void jsAlert(string html[, function f])

Funkce zobrazí zprávu v modálním dialogu s tlačítkem „OK“ (nepoužívá nativní „alert“ prohlížeče, takže nezastaví vykonávání dalšího kódu). Parametr „html“ je obsah zprávy a smí obsahovat HTML značky. Volitelný parametr „f“ je funkce, která se vykoná po kliknutí na „OK“ — vše, co má následovat až po potvrzení zprávy, patří do ní, ne za volání „jsAlert“.

Příklad:

jsAlert('Záznam byl uložen.');
jsAlert('Záznam byl uložen.', function() { jsRefresh(window); });
 

void jsClose([string message])

Funkce zavře aktuální iframe dialog, a není-li stránka otevřená jako dialog, zavře okno. Je-li vyplněný volitelný parametr „message“, funkce nejdřív zobrazí zprávu funkcí „jsAlert“ a zavření provede až po jejím potvrzení tlačítkem „OK“.

Příklad:

jsClose();
jsClose('OK');
 

string jsCompanyWithoutSro(string value)

Funkce zkrátí název firmy před první výskyt mezery následované zkratkou právní formy – „ a.“, „ k.“, „ kom.“, „ s.“, „ spol.“ nebo „ v.“ (bez ohledu na velikost písmen) – a vrátí text před ní. Právní forma na začátku názvu se neodstraňuje. Protože funkce hledá jen uvedené začátky, zkrátí i název, ve kterém se taková kombinace objeví uprostřed (např. „Jan K. Novák“ vrátí „Jan“), a čárka před právní formou zůstane zachována.

Příklad:

var s = jsCompanyWithoutSro('ABC s.r.o.'); // Vrací „ABC“
var s = jsCompanyWithoutSro('XYZ a.s.'); // Vrací „XYZ“
 

bool jsConfirm(object o, string html[, string yes, string no[, function f]])

Funkce zobrazí potvrzovací dotaz nad prvkem „o“ a vrátí „true“ teprve tehdy, když uživatel odpověděl kladně — je to náhrada nativního „confirm“ v obsluze kliknutí. Parametr „o“ je prvek, na který se kliklo (typicky „this“), „html“ je text dotazu a „yes“ a „no“ jsou popisky obou tlačítek — pro „Ano“ a „Ne“ se předávají proměnné „dialogYes“ a „dialogNo“, které se řídí jazykem přihlášeného uživatele; vynechané popisky funkce doplní právě z nich. Volitelný parametr „f“ je funkce, která se vykoná po záporné odpovědi (v ní „this“ ukazuje na prvek „o“).

Zapisuje se stejně jako nativní „confirm“:

if (!jsConfirm(this, 'Opravdu chcete záznam smazat?', dialogYes, dialogNo)) return false;

Dialog nezastaví vykonávání kódu, takže funkce při prvním kliknutí dotaz jen zobrazí a vrátí „false“. Kladná odpověď pak prvek klikne znovu a funkce podruhé vrátí „true“ — tím se rozběhne výchozí akce prvku, tedy odeslání formuláře nebo skript tlačítka.

Z toho plynou dvě omezení. Obsluha kliknutí se vykoná znovu po každé kladné odpovědi, takže cokoli před dotazem se provede opakovaně — před dotazem smí stát jen kontroly bez vedlejších účinků. A prvek „o“ musí být klikatelný (tlačítko nebo odkaz). Potvrzení něčeho jiného než kliknutí, například změny hodnoty ve výběrovém poli („onchange“), se řeší funkcí „jsDialog“ a pokračování se zapisuje do její funkce.

Jedna obsluha kliknutí se smí zeptat postupně na víc věcí. Funkce si pamatuje každý potvrzený dotaz, dokud obsluha po kladné odpovědi znovu neproběhne až do konce; při dalším průchodu proto vrátí „true“ u všech už potvrzených dotazů a zeptá se až na ten následující. Dotaz se pozná podle textu „html“, takže ten musí být při každém průchodu stejný. Záporná odpověď na kterýkoli z dotazů celou řadu ukončí.

Prvek „o“ lze vynechat (předat „null“) — funkce pak použije prvek, na který se právě kliklo; neběží-li volání v obsluze žádné události (například ze „setTimeout“), vrátí „false“ a dotaz nezobrazí. Díky tomu ji lze volat i z funkce, kterou spouští tlačítko „Uložit“ nebo „Smazat“ editačního formuláře a která sama tlačítko nedostane:

function beforeSave()
{
if (!jsConfirm(null, 'Opravdu chcete uložit změny?')) return false;
if (!jsConfirm(null, 'Opravdu chcete pokračovat?')) return false;
return true;
}
 

string jsDialog(string html, object[] buttons[, object context])

Funkce zobrazí modální potvrzovací dialog (nepoužívá nativní „confirm“ prohlížeče, takže nezastaví vykonávání dalšího kódu a nevrací odpověď uživatele). Parametr „html“ je obsah dialogu a smí obsahovat HTML značky. Vrací ID dialogu.

Odpověď se nevrací návratovou hodnotou — co se má stát po odpovědi, patří do funkce předané dialogu. Parametr „buttons“ je pole ve tvaru „[popisek1, funkce1, popisek2, funkce2, ...]“, kde každá dvojice je jedno tlačítko dialogu; funkce smí být „null“, pak tlačítko dialog jen zavře. Popisky se zadávají u každého volání, protože se řídí jazykem přihlášeného uživatele; pro „Ano“ a „Ne“ slouží proměnné „dialogYes“ a „dialogNo“.

Volitelný parametr „context“ určuje, na co bude v předaných funkcích ukazovat „this“ — typicky se předá „this“ z obsluhy kliknutí, aby se ve funkci dalo pracovat s tlačítkem, které dialog vyvolalo.

V obsluze kliknutí musí za voláním vždy následovat „return false“ — dialog se otevírá asynchronně, takže výchozí akci prvku (odeslání formuláře, přechod na odkaz) je nutné zrušit; skutečná akce se provede až z předané funkce.

Prázdné pole tlačítek („[]“) vytvoří dialog bez tlačítek — blokující překryv, který uživatel zavřít nemůže. Slouží jako hlášení typu „Čekejte prosím“ po dobu dlouhé operace; zavře ho až kód funkcí „jsDialogClose“ s ID, které „jsDialog“ vrátila.

Otevřený smí být vždy jen jeden dialog. Je-li už některý zobrazený, další volání „jsDialog“ — a tedy i „jsAlert“ — nic nezobrazí a vrátí „null“, takže se hlášení tiše zahodí. Blokující překryv je proto nutné před dalším dialogem vždy nejdřív zavřít.

Druhý případ, kdy funkce vrátí „null“, je dialog vyvolaný v době, kdy se stránka teprve načítá — zobrazí se až po jejím načtení, protože do té doby ji zakrývá loader. Blokujícího překryvu bez tlačítek se to netýká: ten se zobrazí okamžitě a ID vrátí, aby ho bylo čím zavřít.

Příklad:

jsDialog('Opravdu smazat?', [dialogYes, function() { bt_Click(BT123); }, dialogNo, null], this); return false;

jsDialog('Uložit změny?', [
'Uložit', function() { bt_Click(BT123); },
'Zahodit', function() { jsClose(); },
'Zpět', null
]); return false;

var id = jsDialog('Čekejte prosím...', []);
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction', function(html) { jsDialogClose(id); jsAlert(html); });
 

void jsDialogClose(string id)

Funkce zavře dialog otevřený funkcí „jsDialog“. Parametr „id“ je ID dialogu, které „jsDialog“ vrátila; neexistující ID funkce ignoruje.

Slouží k zavření dialogu bez tlačítek — ten uživatel zavřít nemůže, takže ho musí zavřít kód. Dialog s tlačítky se po kliknutí zavírá sám a tuto funkci pro něj volat není potřeba.

Příklad:

var id = jsDialog('Čekejte prosím...', []);
_loadUrl(new Object(), 'ngef.aspx?MyFirstFunction', function(html) { jsDialogClose(id); jsAlert(html); });
 

string jsDisplay(bool value)

Funkce vrátí prázdný řetězec (viditelné), pokud je „value“ pravdivé, nebo řetězec „none“ (skryté), pokud je nepravdivé. Vhodné pro nastavení style.display.

Příklad:

#ng_:Table#.style.display = jsDisplay(podminka);
 

string jsFN(double n)

string jsFormatNumber(double n)

Funkce formátuje číslo zadané parametrem „n“ do textové podoby vyžadované pro správné uložení číselné hodnoty do databáze – zajistí použití správného oddělovače desetinných míst na základě nastavení proměnné „numberSeparator“. Funkce „jsFormatNumber“ je aliasem pro „jsFN“.

Příklad:

control_SetValue(#ng_textbox#, jsFN(1.23));
#ng_textbox#.value = jsFN(1.23);
 

string jsFormatCurrency(number n, string symbol)

Funkce formátuje číslo jako částku s oddělovači tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (čeština mezera a čárka, angličtina čárka a tečka). Číslo doplní alespoň na 2 desetinná místa; delší desetinnou část nezaokrouhluje ani nezkracuje. Volitelný parametr „symbol“ je přidán za číslo.

Příklad:

var s = jsFormatCurrency(1234567.89, 'Kč'); // Vrací „1 234 567,89 Kč“ (anglicky „1,234,567.89 Kč“)
 

string jsFormatDate(object date)

Funkce formátuje datum zadané parametrem „date“ do textové podoby na základě formátu data z nastavení NET Genia („dd.MM.yyyy“ nebo „MM/dd/yyyy“) a jazykového nastavení aktuálně přihlášeného uživatele (pro angličtinu lomítko jako oddělovač, jinak tečka).

Příklad:

var s = jsFormatDate(new Date());
// Vrací aktuální datum, např. „20.04.2026“ (jazyk jiný než angličtina)
var s = jsFormatDate(Str2Date('01.01.2016 13:00'));
// Vrací „01.01.2016“
 

string jsFormatDouble(number n [, string symbol])

Funkce formátuje číslo s oddělovači tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (čeština mezera a čárka, angličtina čárka a tečka). Počet desetinných míst odpovídá vstupnímu číslu (proměnný). Volitelný parametr „symbol“ je přidán za číslo.

Příklad:

var s = jsFormatDouble(1234.5);      // Vrací „1 234,5“ (anglicky „1,234.5“)
var s = jsFormatDouble(1234.56, 'kg'); // Vrací „1 234,56 kg“
 

string jsFormatSize(number n)

Funkce formátuje velikost souboru v bytech do čitelného formátu (b / kB / MB).

Příklad:

var s = jsFormatSize(1024);      // Vrací „1 kB“
var s = jsFormatSize(1048576); // Vrací „1 MB“
var s = jsFormatSize(512); // Vrací „512 b“
 

string jsFormatTable(object[][] value, string title, int width, bool showGrid, string noEntries, int pageSize, object tb_pageIndex)

Funkce vykreslí úplné HTML datagridu z tabulkových dat. Parametr „value“ je dvourozměrné pole: „value[0]“ je řádek záhlaví a další prvky jsou datové řádky, jejichž prvky jsou hodnoty buněk. Buňka s hodnotou „null“ (JavaScriptová hodnota, ne text) způsobí colspan sousedního sloupce. Zarovnání sloupce se určuje v záhlaví: prefix | = vlevo, suffix | = vpravo, prefix i suffix | = na střed. Šířka sloupce: suffix ! = šířka v pixelech. Stránkování zajistí parametr „pageSize“ a parametr „tb_pageIndex“, kterým je textové pole s číslem aktuální stránky. Hodnoty buněk i titulek se vkládají jako HTML bez úprav – data zadaná uživatelem je proto nutné předem zakódovat funkcí „htmlEncode“.

Příklad:

var data = 'Věk'], ['Jan', '30'], ['Petra', '25';
var html = jsFormatTable(data, 'Přehled', 500, true, 'Žádné záznamy', 10, null);
el('ng-output').innerHTML = html;
 

string jsFormatTable2(object[][] value, int width, string noEntries)

Zjednodušená verze „jsFormatTable“ bez mřížky a s minimálním formátováním. Parametr „value“ má stejný tvar jako u funkce „jsFormatTable“.

Příklad:

var html = jsFormatTable2('Věk'], ['Jan', '30', 400, 'Žádné záznamy');
 

string jsFormatTime(object date)

Funkce formátuje čas zadaný parametrem „date“ do textové podoby ve formátu „HH:mm“.

Příklad:

var s = jsFormatTime(new Date());
// Vrací aktuální čas, např. „14:35“
var s = jsFormatTime(Str2Date('1.1.2016 13:00'));
// Vrací „13:00“
 

string jsFormatTime2(object date)

Funkce formátuje čas zadaný parametrem „date“ do textové podoby ve formátu „HH:mm:ss“.

Příklad:

var s = jsFormatTime2(new Date());
// Vrací aktuální čas, např. „14:35:22“
var s = jsFormatTime2(Str2Date('1.1.2016 13:00'));
// Vrací „13:00:00“
 

string jsFormatTime3(object date)

Funkce formátuje čas zadaný parametrem „date“ do textové podoby ve formátu „HH:mm:ss.SSS“ (včetně milisekund).

Příklad:

var s = jsFormatTime3(new Date());
// Vrací aktuální čas, např. „14:35:22.456“
var s = jsFormatTime3(Str2Date('1.1.2016 13:00'));
// Vrací „13:00:00.0“
 

string jsFullName(object title, object name, object surname [, object title2])

Funkce sestaví celé jméno z hodnot ovládacích prvků s titulem před jménem, jménem, příjmením a volitelným titulem za jménem. Prázdné části vynechá a titul za jménem oddělí čárkou.

Příklad:

#ng_celejmeno#.value = jsFullName(#ng_titulpred#, #ng_jmeno#, #ng_prijmeni#, #ng_titulza#);
 

bool jsIsNumber(object o)

Funkce vrátí logickou hodnotu „true“, pokud je hodnota zadaná parametrem „o“ číslo (po případném nahrazení čárky tečkou), nebo „false“ v opačném případě. Testuje, zda hodnota spadá do rozsahu -1 000 000 000 000 až 1 000 000 000 000. Prázdný řetězec nebo řetězec obsahující jen mezery vyhodnotí jako číslo.

Příklad:

var ok = jsIsNumber(#ng_textbox#.value);
var ok = jsIsNumber('1 234,56'); // Vrací false (mezera není povolena)
var ok = jsIsNumber('1234,56'); // Vrací true
 

double jsMeasureHours(Date startDate, Date endDate)

Funkce vrátí počet hodin mezi dvěma daty. Pokud je čas konečného data 00:00, je to považováno za konec dne (půlnoc), nikoliv za začátek dne.

Příklad:

var h = jsMeasureHours(new Date(2024, 0, 1, 8, 0), new Date(2024, 0, 1, 16, 0)); // Vrací 8
 

double jsMeasureMinutes(Date startDate, Date endDate)

Funkce vrátí nezaokrouhlený počet minut z časového úseku zadaného parametry „startDate“ a „endDate“. Oba parametry musí být JavaScriptové objekty typu „Date“. Interně volá „jsMeasureHours“ a násobí výsledek 60.

Příklad:

var n = jsMeasureMinutes(Str2Date('1.1.2000'), Str2Date('1.2.2000'));
var n = jsMeasureMinutes(new Date(2024, 0, 1, 8, 0), new Date(2024, 0, 1, 8, 30)); // Vrací 30
 

double jsMeasureWorkDays(Date startDate, Date endDate [, int workingHours])

Funkce vrátí počet pracovních dní mezi dvěma daty. Vynechává víkendy, státní svátky z „holidays1Cache_Array“ (celý den) a svátky z „holidays2Cache_Array“ (půl dne). Parametr „workingHours“ umožňuje výpočet ve zlomcích dne (např. 8 hodin = 1 pracovní den).

Příklad:

var d = jsMeasureWorkDays(new Date(2024, 0, 1), new Date(2024, 0, 31));
var d = jsMeasureWorkDays(new Date(2024, 0, 1), new Date(2024, 0, 31), 8);
 

number jsN(var o [, var o2])

Funkce bezpečně převede hodnotu na číslo. Zpracuje čárku jako desetinný oddělovač (nahradí se jen první čárka). Vrátí 0 pro null, prázdný řetězec, text, který není číslem (např. s mezerou mezi tisíci), nebo hodnoty mimo rozsah ±1 000 000 000 000. Volitelný parametr „o2“ je přidán jako desetinná část.

Příklad:

var n = jsN('1234,56');  // Vrací 1234.56
var n = jsN('1 234,56'); // Vrací 0 (mezera není povolena)
var n = jsN(null); // Vrací 0
var n = jsN('3', '14'); // Vrací 3.14
 

string jsNetGeniumStart(string date)

Funkce vrátí čas prvního spuštění NET Genia aktuálně přihlášeným uživatelem ve dni zadaném textovým parametrem „date“ ve formátu „dd.MM.yyyy“. Informaci o čase spuštění čte z cookies (klíč „NG“ + datum bez oddělovačů).

Příklad:

var s = jsNetGeniumStart('#today#');
 

string jsngdph()

Funkce vrátí aktuální sazby DPH pro ČR oddělené středníkem, od nejvyšší po nulovou.

Příklad:

var s = jsngdph();
// Vrací aktuální sazby DPH pro ČR, např. „21;12;0“
 

double jsngdph(int rate)

Funkce vrátí aktuální sazbu DPH pro ČR podle indexu zadaného parametrem „rate“: 2 = základní sazba, 1 = první snížená sazba, 3 = druhá snížená sazba, 0 = nulová sazba. Neplatí-li k danému datu příslušná sazba, vrátí 0.

Příklad:

var n = jsngdph(2);
// Vrací základní sazbu DPH, např. 21
var n = jsngdph(1);
// Vrací sníženou sazbu DPH, např. 12
 

string jsngdph(object date)

Funkce vrátí sazby DPH pro ČR platné k datu zadanému parametrem „date“ (JavaScriptový objekt Date), oddělené středníkem.

Příklad:

var s = jsngdph(Str2Date('1.1.2013'));
// Vrací sazby DPH platné k 1.1.2013, např. „21;15;0“
 

double jsngdph(int rate, object date)

Funkce vrátí sazbu DPH pro ČR definovanou parametrem „rate“ platnou k datu zadanému parametrem „date“.

Příklad:

var n = jsngdph(2, Str2Date('1.1.2000'));
// Vrací zvýšenou sazbu DPH platnou k 1.1.2000, např. 22
 

string jsngdph(double base, string type1, double rate, string type2 [, bool vyuctovanidph])

Funkce pro výpočty DPH. Parametr „base“ je vstupní částka, „type1“ specifikuje její typ („bezdph“ nebo „sdph“), „rate“ je sazba DPH v procentech (nebo objekt ComboBoxu s sazbami DPH), „type2“ určuje výstup. Volitelný parametr „vyuctovanidph“ („true“) mění způsob výpočtu pro vyúčtování.

Možné hodnoty parametru „type2“:

  • „bezdph“ – vypočítá základ daně
  • „dph“ – vypočítá hodnotu DPH
  • „zdph“ – DPH dopočtená tak, aby se částka s DPH zaokrouhlila nahoru na celé číslo
  • „dph1“ – DPH snížené sazby
  • „zdph1“ – DPH snížené sazby dopočtená tak, aby se částka s DPH zaokrouhlila nahoru
  • „dph2“ – DPH zvýšené sazby
  • „zdph2“ – DPH zvýšené sazby dopočtená tak, aby se částka s DPH zaokrouhlila nahoru
  • „sdph“ – částka s DPH
  • „zsdph“ – částka s DPH zaokrouhlená nahoru na celé číslo
  • „zsdph-1“ – částka s DPH zaokrouhlená matematicky na celé číslo
  • „zsdph-2“ – částka s DPH zaokrouhlená na 50 haléřů

Příklad:

// Cena bez DPH › cena s DPH (sazba 21 %)
var s = jsngdph(1000, 'bezdph', 21, 'sdph'); // Vrací „1210“

// Cena s DPH › základ DPH
var s = jsngdph(1210, 'sdph', 21, 'bezdph'); // Vrací „1000“

// Výpočet hodnoty DPH
var s = jsngdph(1000, 'bezdph', 21, 'dph'); // Vrací „210“
 

int jsngvatindex(double rate [, object dph])

Funkce vrátí index sazby DPH zadané parametrem „rate“. Vrací „0“ pro nulovou sazbu, „1“ pro sníženou, „2“ pro zvýšenou, „3“ pro druhou sníženou sazbu. Volitelný parametr „dph“ je objekt ComboBoxu se sazbami DPH – pokud je zadán, index se odvozuje z hodnot v ComboBoxu.

Příklad:

var n = jsngvatindex(0);  // Vrací 0
var n = jsngvatindex(15); // Vrací 1
var n = jsngvatindex(21); // Vrací 2
var n = jsngvatindex(10); // Vrací 3
 

number[] jsngvatrates(string country, object date)

Funkce vrátí pole sazeb DPH pro zadanou zemi (kód ISO, např. „CZ“, „DE“, „SK“, „HU“, ...) platných k datu zadanému parametrem „date“. Hodnoty jsou seřazeny od nejvyšší sazby po nejnižší. Prázdný kód země nebo „-“ znamená ČR; Řecko lze zadat kódem „GR“ i „EL“; pro neznámou zemi vrací „null“.

Příklad:

var rates = jsngvatrates('CZ', new Date()); // Vrací např. [21, 12]
var rates = jsngvatrates('DE', Str2Date('1.1.2013')); // Vrací [19, 7]
 

number jsNumber(var o [, var o2])

Alias pro funkci „jsN“. Bezpečně převede hodnotu na číslo. Zpracuje čárku jako desetinný oddělovač.

Příklad:

var n = jsNumber('1234,56'); // Vrací 1234.56
var n = jsNumber(null); // Vrací 0
 

string jsNumberInWords(number n, string language)

Funkce převede číslo na textový zápis slovy. Podporované jazyky: „cz“/„cs“ (čeština), „sk“ (slovenština), „de“ (němčina), „en“ (angličtina), „fr“ (francouzština). Podporuje hodnoty do miliard. Číslo se před převodem zaokrouhlí na celé číslo a znaménko se ignoruje.

Příklad:

var s = jsNumberInWords(1234, 'cz'); // Vrací „jeden tisíc dvě stě třicet čtyři“
var s = jsNumberInWords(42, 'en'); // Vrací „forty two“
 

object jsO(object o)

Funkce převede objekt „o“ na bezpečný objekt – pokud je „o“ null nebo je to číslo (tzn. hodnota ovládacího prvku, na který uživatel nemá právo), vrátí „null“; jinak vrátí původní objekt. Funkce má využití při testování práv uživatele k ovládacímu prvku.

Příklad:

var o = jsO(#ng_tb#);
// Pokud uživatel nemá na ovládací prvek '#ng_tb#' právo,
// dojde k nahrazení '#ng_tb#' za hodnotu z databáze – jsO() pak vrátí null
if (o != null)
{
// ovládací prvek je přístupný
}
 

void jsOpen(string url)

Funkce otevře URL v iframe dialogu (overlay) uvnitř aktuální stránky. Výjimka: stránka DownloadFile.aspx se otevře jako skutečné popup okno prohlížeče. Na mobilních zařízeních se vždy otevře popup.

Příklad:

jsOpen('ViewPage.aspx?appgroup=1&app=2&viewpage=3&id=100');
 

bool jsPost([string action, function f, bool loader])

Funkce odešle všechny hodnoty formuláře metodou POST na aktuální URL stránky. Parametr „action“ je název akce, kterou stránka zpracuje (nikoli adresa). Volitelný parametr „f“ je callback, kterému se předá HTML odpovědi – zavolá se u částečné odpovědi a u odpovědi s celou stránkou. Parametr „loader“ s hodnotou „true“ zobrazí indikátor načítání ihned, jinak se zobrazí až po jedné sekundě. Funkce zpracovává navigační hlavičky odpovědi pro přesměrování a vrací „false“.

Příklad:

jsPost();
jsPost(null, function(html) { alert('Hotovo'); });
 

string jsProgressBar(int width, int done, string color)

Funkce vrátí HTML řetězec pro vizuální progress bar. Parametr „width“ je celková šířka – kladné číslo v pixelech, nebo CSS délka v jednotkách „px“, „%“, „em“, „rem“ či „vw“ (např. „50%“); jiná hodnota se ignoruje a progress bar šířku nemá. Parametr „done“ je procento (0–100), „color“ je barva výplně.

Příklad:

var html = jsProgressBar(200, 75, '#4caf50');
el('ng-progress').innerHTML = html;
 

double jsR(number n [, int decimals])

double jsRound(number n [, int decimals])

Funkce zaokrouhlí číslo na zadaný počet desetinných míst. Správně zpracuje záporná čísla (ne jako Math.round). Parametr „decimals“ je volitelný a výchozí hodnota je 0. Funkce „jsRound“ je aliasem pro „jsR“.

Příklad:

var n = jsR(2.567, 2); // Vrací 2.57
var n = jsR(-2.5); // Vrací -3 (správné matematické zaokrouhlení)
var n = jsR(2.5); // Vrací 3
var n = jsRound(21.232); // Vrací 21
 

double jsR_50(number n)

double jsRound_50(number n)

Funkce zaokrouhlí číslo zadané parametrem „n“ na padesátihaléře (tj. na násobky 0,5). Číslo se nejdříve zaokrouhlí na 2 desetinná místa; desetinná část pod 0,25 se zaokrouhlí dolů, od 0,25 do 0,75 na 0,5 a od 0,75 nahoru. Funkce „jsRound_50“ je aliasem pro „jsR_50“.

Příklad:

var n = jsR_50(123.456); // Vrací 123.5
var n = jsR_50(123.749); // Vrací 124
var n = jsR_50(123.750); // Vrací 124
var n = jsR_50(123.249); // Vrací 123.5
var n = jsR_50(123.240); // Vrací 123
 

void jsRefresh(object o [, bool refresh, string id, string cmd])

Funkce obnoví stránku v okně zadaném parametrem „o“ se zachováním pozice scrollu a stavu záložek. Parametr „o“ je povinný – typicky „window“ nebo okno rámu. Stránka se načte znovu metodou GET, neuložené hodnoty formuláře se proto ztratí. Hodnota „update“ parametru „cmd“ místo obnovy klikne na tlačítko „btUpdate“.

Příklad:

jsRefresh(window);
 

void jsResizeIframe(string id)

Funkce automaticky nastaví výšku iframe elementu se zadaným „id“ na výšku jeho obsahu.

Příklad:

jsResizeIframe('ng-iframe-123');
 

bool jsUserInGroup(string usergroup)

Funkce ověří, zda aktuálně přihlášený uživatel patří do zadané skupiny. Využívá globální pole „usergroups“, které obsahuje ID i názvy skupin přihlášeného uživatele. Parametrem může být ID skupiny, nebo její název.

Preferované je ID skupiny — ID je neměnné, kdežto název skupiny lze přejmenovat (a může se lišit podle jazyka), takže kontrola podle názvu je křehčí.

Příklad (preferováno, podle ID skupiny):

if (jsUserInGroup(1)) {
// ...
}

Příklad (podle názvu skupiny):

if (jsUserInGroup('Administrators')) {
// ...
}
 

bool jsValidateEmail(string value)

Funkce ověří, zda zadaný řetězec je platná e-mailová adresa pomocí regulárního výrazu.

Příklad:

var ok = jsValidateEmail('user@example.com'); // Vrací true
var ok = jsValidateEmail('invalid-email'); // Vrací false
 

bool jsValidateEmails(string value)

Funkce ověří, zda jsou všechny e-mailové adresy v řetězci platné. Adresy jsou odděleny středníkem nebo čárkou.

Příklad:

var ok = jsValidateEmails('a@b.com; c@d.com'); // Vrací true
 

string jsVisibility(bool value)

Funkce vrátí string „'visible'“ pokud je „value“ pravdivé, nebo „'hidden'“ pokud je nepravdivé. Vhodné pro nastavení style.visibility (prvek zůstane v layoutu, ale není vidět).

Příklad:

el('ng-element').style.visibility = jsVisibility(podminka);
 

bool jsWait([string url, bool _pleaseWait, object _window, string errorMessage])

Funkce zobrazí indikátor načítání a přejde na zadanou URL. Bez parametru „url“ jen zobrazí indikátor načítání. Parametr „_window“ určuje cílové okno. Parametr „_pleaseWait“ se nepoužívá. Parametr „errorMessage“ se uplatní jen na zařízeních s Windows CE, kde se před přechodem ověří dostupnost serveru. Funkce vrací vždy „false“.

Příklad:

jsWait('ViewPage.aspx?appgroup=1&app=2');
 

void lb_Disable(object lb)

Funkce zakáže editaci ovládacího prvku „ListBox“ zadaného parametrem „lb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

lb_Disable(#ng_listbox#);
 

void lb_Enable(object lb)

Funkce povolí editaci ovládacího prvku „ListBox“ zadaného parametrem „lb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

lb_Enable(#ng_listbox#);
 

bool letterOrDigit(string value)

Funkce vrátí „true“, pokud text zadaný parametrem „value“ začíná písmenem (a–z, A–Z) nebo číslicí (0–9). Vrátí „false“, pokud text začíná jiným znakem.

Příklad:

letterOrDigit('NET Genium'); // Vrací true
letterOrDigit('-a**'); // Vrací false
 

void loadUrl(string url)

Funkce načte stránku definovanou parametrem „url“ pomocí asynchronního ajaxového volání. Funkce nečeká bezprostředně na odpověď serveru. V jednu chvíli je možné volat pouze jedno volání pomocí „loadUrl“ – pokud předchozí volání dosud neskončilo, nové volání se přeskočí. Pro paralelní volání použijte „_loadUrl“.

Příklad:

var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
loadUrl('ngef.aspx?MyFirstFunction,' + urlEncode(p0) + ',' + urlEncode(p1));
 

void loadUrl(string url, string/function f)

Stejně jako předchozí varianta, ale po přijetí odpovědi zavolá callback „f“. HTML kód stránky je funkci „f“ předán jako první parametr.

Příklad:

var p0 = 'ěščřžýáíé', p1 = 'ĚŠČŘŽÝÁÍÉ';
loadUrl('ngef.aspx?MyFirstFunction,' + urlEncode(p0) + ',' + urlEncode(p1), ajaxResponse);

function ajaxResponse(html)
{
alert(html);
}
 

void loadUrl(string url, string/function f, string id)

Stejně jako předchozí varianta. Volitelný parametr „id“ je funkci „f“ předán jako druhý parametr.

Příklad:

loadUrl('ngef.aspx?MyFirstFunction,' + urlEncode(p0), ajaxResponse, 'test');

function ajaxResponse(html, id)
{
alert(id + ': ' + html);
}
 

void loadUrl(string url, string/function f, string id, string params)

Stejně jako předchozí varianta. Parametr „params“ je odeslán v těle požadavku metodou POST (formát: klíč=hodnota&klíč2=hodnota2). Metoda POST se použije vždy, když „params“ není „null“, tedy i pro prázdný řetězec. Volitelný pátý parametr „errorMessage“ definuje text hlášení zobrazeného při HTTP statusu jiném než 200; na rozdíl od funkce „_loadUrl“ ho nelze zadat jako funkci.

Stránka „ngef.aspx“ hodnoty z těla požadavku do pole „args“ nepředává – externí funkce si je přečte metodou „conn.Page.Form("p0")“.

Příklad:

loadUrl('ngef.aspx?MyFirstFunction', ajaxResponse, 'test', 'p0=' + urlEncode(p0) + '&p1=' + urlEncode(p1));

function ajaxResponse(html, id)
{
alert(id + ': ' + html);
}
 

bool loginByFacebook(string scope, bool offline)

Funkce ověří, zda je uživatel přihlášený do účtu Facebooku s platným tokenem. Pokud ano, vrátí „true“. Pokud ne, otevře přihlášení do účtu Facebooku v novém okně prohlížeče s rozsahem oprávnění „scope“ a vrátí „false“. Úspěšné přihlášení nastaví hodnotu proměnné „#facebook_access_token#“.

Příklad:

if (loginByFacebook('email', false))
{
// token je platný
}
 

bool loginByGoogle(string scope, bool offline)

Funkce ověří, zda je uživatel přihlášený do účtu Google s platným tokenem. Pokud ano, vrátí „true“. Pokud ne, otevře přihlášení do účtu Google v novém okně prohlížeče s rozsahem oprávnění „scope“ a vrátí „false“. Úspěšné přihlášení nastaví proměnnou „#google_access_token#“. Parametr „offline=true“ zajistí nastavení také „#google_refresh_token#“.

Příklad:

var ok = loginByGoogle('https://www.googleapis.com/auth/youtube', false);
 

bool loginByMicrosoft(string scope, bool offline)

Funkce ověří, zda je uživatel přihlášený do účtu Microsoft s platným tokenem. Pokud ano, vrátí „true“. Pokud ne, otevře přihlášení do účtu Microsoft v novém okně prohlížeče s rozsahem oprávnění „scope“ a vrátí „false“. Úspěšné přihlášení nastaví proměnnou „#microsoft_access_token#“. Parametr „offline=true“ zajistí nastavení také „#microsoft_refresh_token#“.

Příklad:

var ok = loginByMicrosoft('openid email', false);
 

void mlb_Disable(object mlb)

Funkce zakáže editaci ovládacího prvku „MultiListBox“ zadaného parametrem „mlb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

mlb_Disable(#ng_multilistbox#);
 

void mlb_Enable(object mlb)

Funkce povolí editaci ovládacího prvku „MultiListBox“ zadaného parametrem „mlb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

mlb_Enable(#ng_multilistbox#);
 

void mlb_Items_Delete(object lb)

Funkce odstraní vybrané položky ze seznamu „lb“ ovládacího prvku „MultiListBox“. Parametrem je vnitřní seznam prvku – element s ID „<id>_lb1“ (nabídka) nebo „<id>_lb2“ (vybrané položky), nikoli proměnná „#ng_multilistbox#“, která odkazuje na skryté pole s hodnotou. Funkce nezmění uloženou hodnotu prvku ani nespustí událost „onchange“. Po odstranění vybere nejbližší zbývající položku. Na mobilním zařízení seznamy neexistují.

Příklad:

mlb_Items_Delete(el('#ng_multilistbox:id#_lb2'));
 

string mlb_Items_JoinTexts(object lb)

Funkce vrátí texty všech položek seznamu „lb“ ovládacího prvku „MultiListBox“ spojené oddělovačem „[*VS*]“. Parametrem je vnitřní seznam prvku („<id>_lb1“ nebo „<id>_lb2“), viz funkce „mlb_Items_Delete“.

Příklad:

var s = mlb_Items_JoinTexts(el('#ng_multilistbox:id#_lb2'));
 

string mlb_Items_JoinValues(object lb)

Funkce vrátí hodnoty všech položek seznamu „lb“ ovládacího prvku „MultiListBox“ spojené oddělovačem „[*VS*]“. Parametrem je vnitřní seznam prvku („<id>_lb1“ nebo „<id>_lb2“), viz funkce „mlb_Items_Delete“.

Příklad:

var s = mlb_Items_JoinValues(el('#ng_multilistbox:id#_lb2'));
 

bool mlb_Items_Move(object lb1, object lb2, bool column2, bool back, object lb)

Funkce přesune vybrané položky ze seznamu „lb1“ do seznamu „lb2“. Parametr „column2“ určuje speciální chování pro systémový sloupec č. 2. Parametr „back“ označuje zpětný přesun. Volitelný parametr „lb“ je zdrojový seznam pro zachování pořadí. Vrací „true“ pokud byl přesun úspěšný.

Příklad:

mlb_Items_Move(lb1, lb2, false, false, null);
 

void mlb_Items_MoveDown(object lb)

Funkce posune vybranou položku v seznamu „lb“ ovládacího prvku „MultiListBox“ o jednu pozici dolů. Parametrem je vnitřní seznam prvku („<id>_lb2“), viz funkce „mlb_Items_Delete“.

Příklad:

mlb_Items_MoveDown(el('#ng_multilistbox:id#_lb2'));
 

void mlb_Items_MoveUp(object lb)

Funkce posune vybranou položku v seznamu „lb“ ovládacího prvku „MultiListBox“ o jednu pozici nahoru. Parametrem je vnitřní seznam prvku („<id>_lb2“), viz funkce „mlb_Items_Delete“.

Příklad:

mlb_Items_MoveUp(el('#ng_multilistbox:id#_lb2'));
 

string Now()

Funkce vrátí aktuální datum a čas „HH:mm“ ve formátu data nastaveném v NET Geniu; den a měsíc jsou doplněné nulou na dvě cifry. Datum a čas odpovídají časovému pásmu, ve kterém uživatel vidí časy v NET Geniu (vlastnímu časovému pásmu uživatele, jinak časovému pásmu NET Genia), ne hodinám počítače uživatele.

Příklad:

var s = Now(); // Vrací např. „20.04.2026 14:35“
 

string Now2()

Funkce vrátí aktuální datum a čas „HH:mm:ss“ (včetně sekund) ve formátu data nastaveném v NET Geniu; den a měsíc jsou doplněné nulou na dvě cifry. Datum a čas odpovídají časovému pásmu, ve kterém uživatel vidí časy v NET Geniu (vlastnímu časovému pásmu uživatele, jinak časovému pásmu NET Genia), ne hodinám počítače uživatele.

Příklad:

var s = Now2(); // Vrací např. „20.04.2026 14:35:22“
 

int offsetLeft2(object o)

Funkce vrátí x-ovou souřadnici elementu „o“ od levého (nebo pravého v RTL režimu) horního rohu webové stránky. Prochází celý rodičovský strom („offsetParent“) a sčítá offsety.

Příklad:

var n = offsetLeft2(#ng_textbox#);
 

int offsetTop2(object o)

Funkce vrátí y-ovou souřadnici elementu „o“ od horního okraje webové stránky. Prochází celý rodičovský strom („offsetParent“) a sčítá offsety.

Příklad:

var n = offsetTop2(#ng_textbox#);
 

void picker_Open(object o)

Funkce programově otevře picker ovládacího prvku zadaného parametrem „o“. Interně vyhledá tlačítko pickeru (element s příponou „_p“) a vyvolá jeho kliknutí.

Příklad:

picker_Open(#ng_textbox#);
 

void picker_Open(int picker, object tb)

Funkce otevře picker ovládacího prvku, jehož ID je zadané parametrem „picker“. Hodnoty přiřazení, jejichž cílový ovládací prvek v editačním formuláři není, zapíše picker do elementu zadaného parametrem „tb“ a vyvolá na něm událost změny hodnoty.

Příklad:

picker_Open(4321, el('tb1'));
 

string queryString(string name [, string url])

Funkce extrahuje hodnotu parametru „name“ z URL query stringu. Pokud není zadán parametr „url“, použije se „location.toString()“.

Příklad:

var id = queryString('id');        // z aktuální URL
var id = queryString('id', 'ViewPage.aspx?id=42'); // Vrací „42“
 

int rbl_Count(object rbl)

Funkce vrátí počet možností v skupině radio tlačítek „rbl“.

Příklad:

var n = rbl_Count(#ng_radio#);
 

void rbl_Disable(object rbl)

Funkce zakáže editaci ovládacího prvku „Radio“ zadaného parametrem „rbl“. Alternativou je obecná funkce „control_Disable“.

Příklad:

rbl_Disable(#ng_radio#);
 

void rbl_Enable(object rbl)

Funkce povolí editaci ovládacího prvku „Radio“ zadaného parametrem „rbl“. Alternativou je obecná funkce „control_Enable“.

Příklad:

rbl_Enable(#ng_radio#);
 

void rbl_EnabledItems(object rbl, string[] items)

Funkce povolí pouze ta radio tlačítka, jejichž hodnota je uvedena v poli „items“. Ostatní budou zakázána.

Příklad:

rbl_EnabledItems(#ng_radio#, ['Ano', 'Ne']); // povolí jen možnosti „Ano“ a „Ne“
 

string rbl_SelectedItem_Text(object rbl)

Funkce vrátí text vybraného radio tlačítka v skupině „rbl“.

Příklad:

var s = rbl_SelectedItem_Text(#ng_radio#);
 

string rbl_SelectedItem_Value(object rbl)

Funkce vrátí hodnotu vybraného radio tlačítka v skupině „rbl“.

Příklad:

var s = rbl_SelectedItem_Value(#ng_radio#);
 

int rbl_SelectedIndex(object rbl)

Funkce vrátí index vybrané položky ovládacího prvku „Radio“. V případě, že není vybrána žádná položka, vrátí „-1“.

Příklad:

var n = rbl_SelectedIndex(#ng_radio#);
 

bool rbl_SelectIndex(object rbl, int index)

Funkce vybere radio tlačítko na pozici „index“ (od 0) a vrátí „true“. Neexistující pozici (včetně -1) ignoruje a vrátí „false“ – výběr se tím nezruší. Událost „onchange“ se nespustí.

Příklad:

rbl_SelectIndex(#ng_radio#, 0); // vybere první možnost
 

bool rbl_SelectText(object rbl, string text)

Funkce vybere radio tlačítko, jehož text odpovídá parametru „text“. Prázdný řetězec zruší výběr.

Příklad:

rbl_SelectText(#ng_radio#, 'Ano');
 

bool rbl_SelectValue(object rbl, string value)

Funkce vybere radio tlačítko, jehož hodnota odpovídá parametru „value“. Prázdný řetězec zruší výběr.

Příklad:

rbl_SelectValue(#ng_radio#, '1');
 

string removeDiacritics(string value)

Funkce nahradí diakritické znaky jejich ASCII ekvivalenty pomocí mapovací tabulky. Znaky, které v tabulce nejsou (např. azbuka nebo emoji), se z výsledku vypustí.

Příklad:

var s = removeDiacritics('Česká republika'); // Vrací „Ceska republika“
var s = removeDiacritics('Příliš žluťoučký kůň'); // Vrací „Prilis zlutoucky kun“
 

string removeDoubleCharacters(string value, string ch)

Funkce odstraní z řetězce zadaného parametrem „value“ všechna zdvojení znaku definovaného parametrem „ch“ (nahradí n-násobný výskyt za jednoduchý).

Příklad:

var s = removeDoubleCharacters('a  b   c', ' '); // Vrací „a b c“
 

string removeDoubleLines(string value)

Funkce odstraní z víceřádkového řetězce zadaného parametrem „value“ nadbytečné prázdné řádky – zachová maximálně jeden prázdný řádek za sebou.

Příklad:

var s = removeDoubleLines('a\r\n\r\n\r\nbc'); // Vrací „a\r\n\r\nbc“
 

string removeDoubleSpaces(string value)

Funkce odstraní z řetězce zadaného parametrem „value“ zdvojené mezery. Je aliasem pro „removeDoubleCharacters(value, ' ')“.

Příklad:

var s = removeDoubleSpaces('a  b  c'); // Vrací „a b c“
 

string removeDuplicates(string value, string separator)

Funkce odstraní všechny duplicitní položky z řetězce zadaného parametrem „value“. Oddělovač položek je definován parametrem „separator“.

Příklad:

var s = removeDuplicates('aa;bb;aa;cc', ';'); // Vrací „aa;bb;cc“
 

string removeNonAlphanumericCharacters(string value)

Funkce odstraní z řetězce zadaného parametrem „value“ všechny znaky kromě alfanumerických znaků (a–z, A–Z, 0–9).

Příklad:

var s = removeNonAlphanumericCharacters('1:a:2'); // Vrací „1a2“
 

string removeNonDigits(string value)

Funkce odstraní z řetězce zadaného parametrem „value“ všechny znaky kromě číslic (0–9).

Příklad:

var s = removeNonDigits('1.2.3'); // Vrací „123“
 

string removeTags(string value)

Funkce odstraní HTML tagy z řetězce. Speciální zpracování:

  • </div>, <br>, <hr>, </p> › \n (nový řádek)
  • <li> › \n- (položka seznamu)
  • &nbsp; › mezera

Příklad:

var s = removeTags('<b>Tučný</b> text<br>nový řádek');
// Vrací „Tučný text\nnový řádek“
 

string removeTags2(string value)

Funkce odstraní všechny HTML tagy z řetězce zadaného parametrem „value“ bez jakéhokoliv speciálního zpracování (na rozdíl od „removeTags“ nedoplňuje nové řádky).

Příklad:

var s = removeTags2('<p>abc</p><p>def</p>'); // Vrací „abcdef“
 

string removeUnnecessarySpaces(string value)

Funkce odstraní z řetězce všechna nadbytečná prázdná místa – mezery a tabulátory na začátku a konci řetězce a zdvojené mezery uvnitř nahradí jednoduchými mezerami.

Příklad:

var s = removeUnnecessarySpaces('  a  b  c  '); // Vrací „a b c“
 

string removeWhiteSpaces(string value [, string value2])

Funkce odstraní z řetězce zadaného parametrem „value“ všechna prázdná místa (mezery, tabulátory, nové řádky). Volitelný parametr „value2“ určuje náhradní řetězec (výchozí je prázdný řetězec).

Příklad:

var s = removeWhiteSpaces('a b\tc'); // Vrací „abc“
var s = removeWhiteSpaces('a b\tc', '-'); // Vrací „a-b-c“
 

string replaceAll(string value, string oldValue, string newValue)

Funkce nahradí všechny výskyty „oldValue“ za „newValue“ v řetězci „value“. Nepodporuje regulární výrazy – jde o přímou záměnu textu.

Příklad:

var s = replaceAll('aa bb aa', 'aa', 'cc'); // Vrací „cc bb cc“
 

void rtb_Disable(object rtb)

Funkce zakáže editaci ovládacího prvku „RichTextBox“ zadaného parametrem „rtb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

rtb_Disable(#ng_richtextbox#);
 

void rtb_Enable(object rtb)

Funkce povolí editaci ovládacího prvku „RichTextBox“ zadaného parametrem „rtb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

rtb_Enable(#ng_richtextbox#);
 

void rtb_Focus(object rtb)

Funkce nastaví focus do ovládacího prvku „RichTextBox“ definovaného parametrem „rtb“.

Příklad:

rtb_Focus(#ng_richtextbox#);
 

void rtb_Insert(object rtb, string value)

Funkce vloží do ovládacího prvku „RichTextBox“ hodnotu zadanou parametrem „value“ na aktuální místo kurzoru a označí formulář jako změněný. Hodnota se vkládá jako HTML – text zadaný uživatelem je proto nutné předem zakódovat funkcí „htmlEncode“.

Příklad:

rtb_Insert(#ng_richtextbox#, 'Vložený text');
 

void rtb_Resize(object rtb, int width)

Funkce nastaví šířku ovládacího prvku RichTextBox a jeho záložního textového pole na „width“ pixelů. Parametr „rtb“ je textové pole RichTextBoxu používané v klientském skriptu.

Příklad:

rtb_Resize(#ng_popis#, 700);
 

void scroll_Save(object hfx, object hfy, int viewpage, string s)

Funkce uloží aktuální pozici scrollu do skrytých polí „hfx“ a „hfy“. Pokud je „viewpage“ nenulové, po 1 sekundě asynchronně uloží pozici i na server (stránka „SaveContext.aspx“). Parametr „s“ je identifikátor kontextu.

Příklad:

scroll_Save(el('ng-scrollx'), el('ng-scrolly'), 0, '');
 

void scroll_To(int x, int y [, bool save])

Funkce posune stránku nebo scroll kontejner na pozici (x, y). Pokud je parametr „save=true“, pozice je uložena do skrytých polí pro zachování po postbacku.

Příklad:

scroll_To(0, 500);
scroll_To(0, 0, true);
 

int scrollLeft2([object o])

Funkce vrátí aktuální horizontální pozici scrollu okna nebo elementu „o“. Správně pracuje v RTL režimu a s různými prohlížeči. Pokud je k dispozici vlastní scroll kontejner („ScrollContainer“), použije ho.

Příklad:

var n = scrollLeft2();
 

int scrollTop2([object o])

Funkce vrátí aktuální vertikální pozici scrollu okna nebo elementu „o“. Správně pracuje s různými prohlížeči. Pokud je k dispozici vlastní scroll kontejner („ScrollContainer“), použije ho.

Příklad:

var n = scrollTop2();
 

void setStyleLeft(object o, string value [, bool ltr])

Funkce nastaví vlastnost „style.left“ nebo „style.right“ elementu „o“ podle aktuálního směru textu (LTR/RTL). Volitelný parametr „ltr“ přepíše automatické zjišťování směru.

Příklad:

setStyleLeft(el('ng-element'), '100px');
 

void setStyleMarginLeft(object o, string value)

Funkce nastaví „style.marginLeft“ (LTR) nebo „style.marginRight“ (RTL) elementu „o“ podle aktuálního směru textu.

Příklad:

setStyleMarginLeft(el('ng-element'), '10px');
 

void setStyleMarginRight(object o, string value)

Funkce nastaví „style.marginRight“ (LTR) nebo „style.marginLeft“ (RTL) elementu „o“ podle aktuálního směru textu.

Příklad:

setStyleMarginRight(el('ng-element'), '10px');
 

void setStylePaddingLeft(object o, string value)

Funkce nastaví „style.paddingLeft“ (LTR) nebo „style.paddingRight“ (RTL) elementu „o“ podle aktuálního směru textu.

Příklad:

setStylePaddingLeft(el('ng-element'), '5px');
 

void setStylePaddingRight(object o, string value)

Funkce nastaví „style.paddingRight“ (LTR) nebo „style.paddingLeft“ (RTL) elementu „o“ podle aktuálního směru textu.

Příklad:

setStylePaddingRight(el('ng-element'), '5px');
 

void setTimeout2(object o, function f [, int timeout])

Funkce debounce helper – zruší předchozí timeout uložený v objektu „o“ a nastaví nový s funkcí „f“ a čekáním „timeout“ ms (výchozí 0). Vhodné pro odložené zpracování událostí (např. keyup v textboxu).

Příklad:

// Volá se při každém stisku klávesy, ale zpracování proběhne až po 300ms ticha
attachEvent2(#ng_textbox#, 'keyup', function() {
setTimeout2(#ng_textbox#, function() {
// zpracování textu
}, 300);
});
 

Date Str2Date(string text [, Date defvalue])

Funkce zparsuje textový řetězec na objekt Date. Pořadí dne a měsíce se řídí formátem data nastaveným v NET Geniu, nikoli použitým oddělovačem. Podporuje čas „HH:mm“ i „HH:mm:ss“. Dvouciferné roky jsou převedeny přidáním 2000 (např. „25“ vrací 2025). Při chybě parsování vrátí „defvalue“ nebo aktuální datum a čas.

Příklad:

var d = Str2Date('1.1.2024');
var d = Str2Date('1.1.2024 12:30');
var d = Str2Date('neplatné datum', new Date(2000, 0, 1));
 

void ta_Disable(object ta)

Funkce zakáže editaci ovládacího prvku „TextArea“ zadaného parametrem „ta“. Alternativou je obecná funkce „control_Disable“.

Příklad:

ta_Disable(#ng_textarea#);
 

void ta_Enable(object ta)

Funkce povolí editaci ovládacího prvku „TextArea“ zadaného parametrem „ta“. Alternativou je obecná funkce „control_Enable“.

Příklad:

ta_Enable(#ng_textarea#);
 

void ta_Insert(object ta, string value)

Funkce vloží do ovládacího prvku „TextArea“ zadaného parametrem „ta“ hodnotu „value“ na aktuální místo kurzoru a označí formulář jako změněný. Funkce podporuje i textové pole přepnuté do editoru kódu.

Příklad:

ta_Insert(#ng_textarea#, 'Vložený text');
 

void ta_Resize(object ta, int width)

Funkce nastaví šířku víceřádkového textového pole „ta“ na „width“ pixelů.

Příklad:

ta_Resize(#ng_poznamka#, 700);
 

void tab_Disable(int n)

Funkce zakáže (zašediví) záložku s indexem „n“ v systému záložek formuláře.

Příklad:

tab_Disable(2); // zakáže třetí záložku (indexováno od 0)
 

void tab_Enable(int n)

Funkce povolí záložku s indexem „n“ v systému záložek formuláře.

Příklad:

tab_Enable(2);
 

int tab_GetValue()

Funkce vrátí index aktuálně aktivní záložky.

Příklad:

var n = tab_GetValue(); // Vrací 0, 1, 2, ...
 

void tab_Open(int n)

Funkce programově přepne na záložku s indexem „n“.

Příklad:

tab_Open(1); // přepne na druhou záložku
 

void tab_SetValue(int n)

Funkce nastaví hodnotu skrytého pole záložek na „n“ bez vizuálního přepnutí.

Příklad:

tab_SetValue(2);
 

void tb_Disable(object tb)

Funkce zakáže editaci ovládacího prvku „TextBox“ zadaného parametrem „tb“. Alternativou je obecná funkce „control_Disable“.

Příklad:

tb_Disable(#ng_textbox#);
 

void tb_Enable(object tb)

Funkce povolí editaci ovládacího prvku „TextBox“ zadaného parametrem „tb“. Alternativou je obecná funkce „control_Enable“.

Příklad:

tb_Enable(#ng_textbox#);
 

void tb_InitAjax(object tb, function f, int width, int left, bool focus)

Funkce inicializuje vlastní ajaxový picker pro textové pole „tb“. Parametr „f“ je funkce volaná při keyup (a při focus pokud je „focus=true“). Parametr „width“ určuje šířku okna pickeru v pixelech. Parametr „left“ je horizontální posun okna pickeru od ovládacího prvku. Parametr „focus“ určuje, zda se picker zobrazí již při kliknutí na pole („true“) nebo až při psaní („false“).

Příklad:

tb_InitAjax(#ng_tb#, function(e) { startSearch(e, 'test'); }, 150, 0, false);

function startSearch(e, p0)
{
tb_LoadUrl(e, 'TestPicker.aspx?' + urlEncode(#ng_tb#.value));
}
 

void tb_LoadUrl(object e, string url, string mode [, int timeout])

Funkce po klávesové události se zpožděním načte návrhy ze zadané adresy „url“ a zobrazí je u aktuálního textového pole. Parametr „timeout“ určuje zpoždění v milisekundách, výchozí hodnota je 250. Režim „p“ odešle také hodnoty ovládacích prvků formuláře.

int Time2Int(string text)

Funkce převede textový řetězec – čas ve formátu „HH:mm“ – na počet minut. Správně zpracuje záporné hodnoty.

Příklad:

var n = Time2Int('01:23'); // Vrací 83
var n = Time2Int('-01:24'); // Vrací -84
var n = Time2Int('00:00'); // Vrací 0
 

string translate(string value [, string language])

Funkce vrátí přeložený text z vícejazyčného řetězce ve formátu „Výchozí text#en:English#de:Deutsch“. Bez parametru „language“ vrátí text v jazyce přihlášeného uživatele – NET Genium totiž v JavaScriptu ovládacích prvků při vykreslení přepíše každé volání „translate(“ na interní volání s jazykem uživatele. Parametr „language“ jazyk určí natvrdo. Pokud řetězec nemá větev pro daný jazyk, vrátí výchozí text před první jazykovou značkou. Jazyková značka je znak „#“, dvoupísmenný kód jazyka malými písmeny a dvojtečka; jiný znak „#“ v textu (například „C# kurz#en:C# course“) text nerozdělí.

Přepis se týká jen JavaScriptu zapsaného v ovládacích prvcích a událostech; v samostatném souboru .js se nepřepisuje a nepřepíše se ani volání, před kterým stojí uvozovka nebo apostrof (například „onclick="translate(...)"“). V obou případech se funkce volá s jazykem jako prvním parametrem: „translate(language, value)“.

Příklad:

var s = translate('Ahoj#en:Hello#de:Hallo');       // Vrací text v jazyce uživatele
var s = translate('Ahoj#en:Hello#de:Hallo', 'de'); // Vrací „Hallo“
var s = translate('Ahoj#en:Hello', 'fr'); // Vrací „Ahoj“
 

string urlDecode(string value)

Funkce dekóduje URL-zakódovaný řetězec – převede sekvence %xx (s velkými i malými písmeny) zpět na znaky v kódování UTF-8, takže je protějškem funkce „urlEncode“. Neplatná sekvence (např. samotný znak „%“ v textu „sleva 100%“ nebo sekvence, která není platné UTF-8) zůstane beze změny a funkce kvůli ní nespadne; znak „+“ se na mezeru nepřevádí. Prázdná hodnota (null) vrací prázdný řetězec.

Příklad:

var s = urlDecode('%C4%8Desk%C3%A1'); // Vrací „česká“
 

string urlEncode(string value)

Funkce zakóduje řetězec pro použití v URL nebo v těle požadavku. Používá nativní funkci encodeURIComponent, takže zakóduje všechny znaky kromě písmen bez diakritiky, číslic a znaků „- _ . ! ~ * ' ( )“, znaky mimo ASCII ve tvaru UTF-8. Prázdná hodnota (null) vrací prázdný řetězec a poškozený text (osamělá polovina znaku v kódování UTF-16, typicky useknuté emoji) se zakóduje jako náhradní znak „�“.

Příklad:

var s = urlEncode('česká republika'); // Vrací „%C4%8Desk%C3%A1%20republika“
_loadUrl(new Object(), 'ngef.aspx?MyFunction,' + urlEncode(param));
 

string ZInt(int n)

Funkce doplní číslo na minimálně 2 cifry s nulou na začátku. Používá se pro formátování času a data. Číslo, které doplnění nepotřebuje, vrátí jako číslo, nikoli jako text; záporná čísla nedoplňuje.

Příklad:

var s = ZInt(5);  // Vrací „05“
var s = ZInt(12); // Vrací 12
 

string ZInt4(int n)

Funkce doplní číslo na minimálně 4 cifry s nulami na začátku. Používá se pro formátování roku. Číslo, které doplnění nepotřebuje, vrátí jako číslo, nikoli jako text; záporná čísla nedoplňuje.

Příklad:

var s = ZInt4(42);   // Vrací „0042“
var s = ZInt4(2024); // Vrací 2024