1. Skripty na stránkách s daty

    Článek: AN0001643Aktualizováno:: 20.10.2021

    Na stránkách s daty (Datas.aspx a DataDetail.aspx) pro třídu nebo dotaz je možné použít skripty. Můžete tak jednoduše rozšířit stránky o vámi požadovanou funkcionalitu:

    • můžete na toolbar přidat nové tlačítka pro spouštění vašich akcí
    • reagovat na akce na stránce
    • přidat na stránku nový ovládací prvek pro zobrazení dalších informací
    • ovlivnit chování sloupců (skrýt nebo nastavit read-only režim)

    Skriptování není určeno pro potlačení funkcionality systému ObjectGears, ale pro rozšíření o vaše funkce.

    Každá událost může být ve skriptu definována pouze jednou. Není chybou, když není definována. Pro lepší přehlednost můžete ve skriptu vytvářet další funkce, které však nesmí kolidovat s názvy událostí.

    Pro skripty jsou Vám dostupné následující události:

    Pro Datas.aspx:

    Událost Popis
    OnLoad Událost se spustí po načtení stránky na serveru. Odpovídá ASP.NET události OnLoad.
    OnCreateFilter Událost se spustí po vytvoření filtrovacího objektu. Zde je možnost ovlivnit hledané záznamy.
    OnPreRender Událost se spustí při vykreslení stránky na serveru. Odpovídá ASP.NET události OnPreRender.

    Pro DataDetail.aspx:

    Událost Popis
    OnLoad Událost se spustí po načtení stránky na serveru. Odpovídá ASP.NET události OnLoad.
    OnAfterLoadColumns Událost se spustí po načtení sloupců. Zde je možnost ovlivnit, které se zobrazí či zda budou v read-only režimu.
    OnBeforeBinding Událost se spustí před nastavením hodnot z entity (načtené z databáze) do ovládacích prvků na stránce. Událost lze využít pro inicializaci ovládacích prvků (např. seznamů hodnot comboboxů).
    OnAfterBinding Událost se spustí po dokončení bindování dat z entity do ovládacích prvků. Událost použijte pro finální nastavení ovládacích prvků nebo pro  nastaveních vašich ovládacích prvků.
    OnAfterSave Událost se spustí po uložení dat stránky. Při chybě ve skriptu události tak nedojde ke zrušení ukládání.
    OnPreRender Událost se spustí při vykreslení stránky na serveru. Odpovídá ASP.NET události OnPreRender.

    Popis událostí

    Všechny události se ve skriptu definují stejně, jen s rozdílným názvem funkce.

    Příklad definice události:

    function OnPreRender()
    {
        ...
    }

    Objekty skriptů

    Pro různé události jsou dostupné různé vlastnosti. Tyto objekty jsou popsány v následující tabulce.

    Pro Datas.aspx:

    Událost Objekt Popis
      OGModel Instance aktuálního modelu.
      OGParentType Typ zobrazeného objektu - třída nebo dotaz.
      OGClassDef Instance zobrazené třídy.
      OGQuery Instance zobrazeného dotazu.
      OGIsArchiveMode Příznak, zda jsou na stránce zobrazovány archivní záznamy.
    OnLoad OGControlOperations Seznam tlačítek zobrazovaných na toolbaru. Seznam obsahuje jen povolená tlačítka.
    OnLoad OGColumns Seznam sloupců zobrazovaných v seznamu záznamů. Seznam obsahuje jen povolené sloupce.
    OnLoad OGFilter Objekt filtru pro třídu/dotaz.
    OnCreateFilter OGDataRowFilter Instance fltru, kterým budou načteny záznamy z databáze.
      OGPageSetting Vlastnosti celé stránky.

     Pro DataDetail.aspx:

    Událost Objekt Popis
      OGModel Instance aktuálního modelu.
      OGParentType Typ zobrazeného objektu - třída nebo dotaz.
      OGClassDef Instance zobrazené třídy.
      OGQuery Instance zobrazeného dotazu.
      OGIsArchiveMode Příznak, zda jsou na stránce zobrazovány archivní záznamy.
      int? OGDataRowId Id datového záznamu z provozní tabulky.
      int? OGArchiveId Id archivního záznamu z archivní tabulky.
    OnPreRender OGControlOperations Seznam tlačítek zobrazovaných na toolbaru. Seznam obsahuje jen povolená tlačítka.

    OnAfterLoadColumns

    OnPreRender

    OGColumns Seznam sloupců zobrazovaných na formuláři. Seznam obsahuje jen povolené sloupce.
    OnLoad
    OnAfterLoadColumns
    OnBeforeBinding
    OnAfterBinding
    OnAfterSave
    OGEditOptions Objekt pro nastavení vytvoření, uložení nebo mazání záznamu.
      OGPageSetting Vlastnosti celé stránky.
    OnAfterLoadColumns OGMDRelations Seznam master-detail vazeb.

    Pomocí objektu OGEditOptions, můžete na stránce DataDetail.aspx zakázat vytvoření, uložení nebo smazání záznamu. Je možné pouze zakázat tyto operace. Není možné tyto operace povolit v případě, že uživatel nemá potřebná přístupová oprávnění.

     Ovládací prvky

    Pro práci ve skriptech je potřeba znát názvy ovládacích prvků, které lze použít. Tabulka níže obsahuje seznam dostupných názvů.

    Pro Datas.aspx:

    Typ Kód ovládacího prvku Popis
    ToolbarButton backButton Tlačítko Zpět na toolbaru.
    HyperLinkButton newButton Tlačítko Nový na toolbaru.
    ToolbarButton reloadButton Tlačítko Obnovit na toolbaru.

    Pro DataDetail.aspx:

    Typ Kód ovládacího prvku Popis
    HyperLinkButton backButton Tlačítko Zpět na toolbaru.
    ToolbarButton deleteButton Tlačítko Smazat na toolbaru.
    ToolbarButton saveButton Tlačítko Uložit na toolbaru.
    HyperLinkButton newButton Tlačítko Nový na toolbaru.
    HyperLinkButton newButtonAsNew Tlačítko Jako nový na toolbaru.
    HyperLinkButton archive Tlačítko Archiv na toolbaru.
    HyperLinkButton archiveDetail Tlačítko Detailní archiv na toolbaru.

    Příklady

    Vložení tlačítka na stránku

    Skript vloží na toolbar tlačítko, které po kliknutí zobrazí informační text.

    function OnLoad()
    {
        OGForm.Toolbar.CreateButton( 'b1', 'Button', './imagesdata/archive.png');
    }

    function b1_Click()
    {
        OGForm.SetSuccess( 'You have clicked on B1 button');
    }

    Nastavení tlačítka Zpět

    Nastavením tlačítka potlačíte výchozí chování. Nastavením můžete změnit text na tlačítku, ikonu, URL (použije se při kliknutí na tlačítko) a viditelnost.

    Vlastnosti nastavujte v události OnLoad.

    function OnLoad()
    {
        var b = OGForm.GetControl('backButton');
        b.Visible = true;
        b.Text = 'Zpět na začátek';
        b.NavigateUrl = 'Datas.aspx?CId=85';
    }

    Nastavení vlastností stránky

    function OnLoad()
    {
      OGPageSetting.PageTitle = 'Můj název stránky';
      OGPageSetting.BackgroundColor = 'red';
      OGPageSetting.PageKeyword = 'klíčová slova,další klíčové slovo';
      OGPageSetting.PageDescription = 'Popis stránky';
    }

     

×