Obsah fóra www.proxima-soft.sk www.proxima-soft.sk
Px Framework - ASP.NET komponenty pre rýchly vývoj databázových aplikácii
 
 FAQFAQ   HľadaťHľadať   Zoznam užívateľovZoznam užívateľov   Užívateľské skupinyUžívateľské skupiny   RegistráciaRegistrácia 
 NastaveniaNastavenia   Súkromné správySúkromné správy   PrihláseniePrihlásenie 
Ako vytvorit vztah/reláciu Master-Detail?

 
Pridať novú tému   Zaslať odpoveď    Obsah fóra www.proxima-soft.sk -> PxWebQuery - komponenta na načítanie dát z databázy
Zobrazi predchádzajúcu tému :: Zobrazi nasledujúcu tému  
Autor Správa
Juraj Z.



Založený: streda, 26 januára 2011, 00:00
Príspevky: 17
Bydlisko: www.superinfo.sk

Príspevok Zaslal: pondelok, 28 februára 2011, 15:33    Predmet: Ako vytvorit vztah/reláciu Master-Detail?

Ako vytvoriť medzi dvoma tabuľkami vzťah/reláciu Master-Detail?
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
admin



Založený: štvrtok, 17 júna 2010, 00:00
Príspevky: 49
Bydlisko: Fatranská 1, B.Bystrica

Príspevok Zaslal: pondelok, 28 februára 2011, 15:44    Predmet: Ako vytvorit vztah/reláciu Master-Detail?

Komponenta PxWebQuery po zmene pozície kurzora, generuje udalosť(event) s názvom AfterScroll. Na túto udalosť môžeme pripojiť procedúru v ktorej sa nám bude vykonávať znovu načítanie podriadenej tabuľky. V praxi to bude vyzerať nasledovne. Najprv si zadefinujeme prvotne otvorenie obidvoch tabuliek v metóde Page_Load a ich napojenie na komponenty PxSuperGrid. Viac príklad dole:

kód:
protected void Page_Load(object sender, EventArgs e)
    {
       
        if (wquKateg_Zaner.Active == false)
        {
            wquKateg_Zaner.ConnectString = AppConst.ConnectString;
            wquKateg_Zaner.SQLSelect = "select IDKateg_Zaner, Name from Kateg_Zaner order by IDKateg_Zaner";

            wquKateg_Zaner.Open();

        }
        else
        {
            wquKateg_Zaner.AfterScroll += new AfterScrollEventHandler(wquKateg_Zaner_AfterScroll);
        }

        if (wquZaner.Active == false)
        {
            wquZaner.ConnectString = AppConst.ConnectString;
            wquZaner.SQLSelect = "select IdZaner, Name, IDKateg_Zaner from Zaner where IDKateg_Zaner=" + 
            wquKateg_Zaner.Fields["IDKateg_Zaner"].ToString();
            //wquZaner.AddParamKey("IDKateg_Zaner", "aKey", "aValue", "aValue", "aKey", sSQLTextCis);
            wquZaner.AddParamWebQuery("IDKateg_Zaner", "IDKateg_Zaner", "Name", "Name", "IDKateg_Zaner", 
            "wquKateg_Zaner");

            wquZaner.Open();

           
        }
        

        grdKateg_Zaner.VisibleFields = "IDKateg_Zaner;Name:100";
        grdKateg_Zaner.PxDataSource = wquKateg_Zaner;
        
        grdKateg_Zaner.DataBind();

        navKateg_Zaner.PxDataSource = wquKateg_Zaner;
        navKateg_Zaner.PxVisibleButtons = "FRNL";


        grdZaner.VisibleFields = "IdZaner; Name:100;IDKateg_Zaner";
        grdZaner.PxDataSource = wquZaner;
        
        grdZaner.DataBind();

        navZaner.PxDataSource = wquZaner;
        navZaner.PxVisibleButtons = "FRNL";


    }


Ako je vidieť, na hore uvedenom príklade, tak sme si pri definícii tabuľky kategória-žáner zadefinovali aj udalosť AfterScroll, viac príklad dole:

kód:
wquKateg_Zaner.AfterScroll += new AfterScrollEventHandler(wquKateg_Zaner_AfterScroll);


Táto udalosť, pri každej zmene kurzora tabuľky kategória-žáner nám zavolá procedúru wquKateg_Zaner_AfterScroll.
V procedúre sa nám vytvorí nový SQL príkaz pre tabuľku žáner, ktorej obsah je znovu načítaní cez procedúru ReOpen(). Procedúra ReOpen nám vlastne urobí refresh tabuľky na základe zmeneného SQL príkazu. Viac príklad dole:

kód:
void wquKateg_Zaner_AfterScroll(object sender, EventArgs e)
{
        string SQLSelect1 = "select IdZaner, Name, IDKateg_Zaner from Zaner where IDKateg_Zaner=" +  
                                            wquKateg_Zaner.Fields["IDKateg_Zaner"].ToString();
        if (wquZaner.SQLSelect != SQLSelect1)
        {
            wquZaner.SQLSelect = SQLSelect1;
            wquZaner.ReOpen(); 
        }
        grdZaner.VisibleFields = "IdZaner; Name:100;IDKateg_Zaner";
        grdZaner.PxDataSource = wquZaner;
        //grdZaner.AllowSorting = true;
        grdZaner.DataBind();

        navZaner.PxDataSource = wquZaner;
        navZaner.PxVisibleButtons = "FRNL";
}


Konkrétny príklad aplikácie so vzťahom master-detail môžete najsť na url adrese: http://www.proxima-soft.sk/examples/510_CD_Titul_Px_Fram_Ajax/ZanerKatMasterDet.aspx
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Pridať novú tému   Zaslať odpoveď    Obsah fóra www.proxima-soft.sk -> PxWebQuery - komponenta na načítanie dát z databázy Časy uvádzané v GMT + 1 hodina