Juraj Z.
Založený: streda, 26 januára 2011, 00:00 Príspevky: 17 Bydlisko: www.superinfo.sk
|
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?
|
|
admin
Založený: štvrtok, 17 júna 2010, 00:00 Príspevky: 49 Bydlisko: Fatranská 1, B.Bystrica
|
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
|
|