en_lang.jpg, 1 kB sk_lang.jpg, 1 kB
English Slovak

      Px Framework - ASP.NET komponenty pre rýchly vývoj databázových aplikácií


Menu:



Články o Px Frameworku:


PxComboBox - komponenta, ktorá slúži na výber dát zo zoznamu, obdoba komponenty DropDownList



Komponenta PxComboBox pracuje obdobne, alebo ma podobné property, ako komponenta PxEdit. Preto nemá zmysel sa nimi podrobne zaoberať, môžete si prečítať kapitolu predchádzajúcu o komponente PxEdit. Veci, ktoré boli podrobne popísané pri komponente PxEdit, budú tuná prejdené len telegraficky, zbežne.

Pomocou komponenty PxComboBox môžeme automaticky editovať stĺpec riadka tabuľky, ktorý je natiahnutý v komponente PxWebQuery. Vytvoríme si súbor AddAdresar.aspx, a do neho zapíšeme nasledujúcu definíciu komponenty PxComboBox:

Súbor AddAdresar.aspx:

<Prx:PxComboBox ID="cmbPravnaForma" runat="server" AddTableRow="True"></Prx:PxComboBox>

V súbore AddAdresar.aspx.cs, si zase zadefinujeme prepojenie komponenty PxComboBox s komponentou PxWebQuery, a jej prepojenie na konkrétny stĺpec tabuľky.

Súbor AddAdresar.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
  cmbPravnaForma.PxDataSource = wquAdresar;
  cmbPravnaForma.FieldName = "idpravnaforma";
}

Komponenta PxComboBox podporuje automatické načítanie zoznamu do svojho tela, a automatické uloženie vybranej hodnoty do databázy, pri vykonaní príkazu Post() na komponente PxWebQuery. Na to aby došlo ku automatickému načítaniu dát do zoznamu komponenty PxComboBox, musíme na komponentu PxWebQuery, na ktorú je napojená naša komponenta PxComboBox, uvaliť parameter AddParamKey, poprípade parameter AddParamWebQuery.

AddParamKey slúži na prepojenie tabuľky z číselníkom. Metóda AddParamKey je metódou komponenty PxWebQuery. Filozofia Px Frameworku je taká, aby čo najviac informácii bolo definovaných na komponente PxWebQuery. Týmto sa vlastne šetrí programovanie a zápis pri komponentách PxSuperGrid, PxEdit, PxComboBox a pod. Všetky tieto komponenty si požičiavajú dáta a nastavenie z komponenty PxWebQuery. Preto na komponente PxWebQuery máme množstvo procedúr a metód, prostredníctvom ktorých definujeme rôzne zobrazenie a prepojenie medzi tabuľkami.

Taká najjednoduchšia metóda prostredníctvom, ktorej sa definuje prepojenie medzi hlavnou tabuľkou a číselníkom je metóda AddParamKey.

Tuto definíciu môžeme zapísať do súboru Adresar.aspx.cs.

protected void Page_Load(object sender, EventArgs e)
{
  if ((!IsPostBack)&&(wquAdresar.Active==false))
  {
    string sSQLText1 = "select IDPravForm as Key, Name as Value from PravForm Order By Value";
    wquAdresar.ConnectString = "User Id=skodapeter;Password=aa;Data Source=xe;";
    wquAdresar.SQLSelect = "select idadresar,name,address,idpravnaforma,create_date from Adresar";
    wquAdresar.AddParamKey("idpravnaforma", "Key", "Value", "Value", "Key", sSQLText1);
    wquAdresar.Open();
    wquAdresar.Columns["idadresar"].Caption = "ID";
    wquAdresar.Columns["name"].Caption = "Meno Osoby";
    wquAdresar.Columns["idpravnaforma"].Caption = "Právna Forma";
    wquAdresar.Columns["address"].Caption = "Adresa";
    wquAdresar.Columns["create_date"].Caption = "Dátum založenia";
  }
  else
  {
  }
  grdAdresar.PxDataSource = wquAdresar;
  grdAdresar.DataBind();
}

Popis Parametrov metódy AddParamKey:
C# syntax:

public void AddParamKey(string aFieldName, string aFieldNameKey,
        string aFieldNameValue, string aFieldToView,
        string aFieldToDB, string aSQLText);


Popis parametrov:

aFieldName - Meno stĺpca v tabuľke na ktorý sa aplikuje metóda AddParamKey
aFieldNameKey - Meno stĺpca číselníka, ktorý reprezentuje kľuč číselníka (toto meno stĺpca sa dá zistiť z Sql príkazu, ktorý sa zadáva do parametra aSQLText)
aFieldNameValue - Meno stĺpca číselníka, ktorý reprezentuje hodnotu(Value) číselníka (toto meno stĺpca sa dá zistiť z Sql príkazu, ktorý sa zadáva do parametra aSQLText)
aFieldToView - tu sa zadáva meno stĺpca, ktorého hodnota sa bude zobrazovať v Gride(PxSuperGrid)
aFieldToDB - tu sa zadáva meno stĺpca, ktorého hodnota bude zapísaná do databázy
aSQLText - tu sa zadefinuje SQL príkaz pre načítanie číselníka, jednotlivé stĺpce je vhodne označiť ako Key a Value, kvôli lepšej prehľadnosti

Po uvalení parametra AddParamKey na komponentu PxWebQuery, a napojení komponenty PxComboBox, si táto komponenta pri načítaní automaticky natiahne dáta, a pri ukladaní sa automaticky uloží zvolená hodnota do databázy.

Obrázok formulára PxComboBox - zarovnanie


Na zarovnanie komponenty sa opäť používajú property AddTableRow, TableBegin a TableEnd, ktoré sú dobre popísané a rozobrané v časti kde je popísaná komponenta PxEdit.

Názov popiskov Caption, alebo názvy stĺpcov v gride(Title) môžete zadať centrálne, pri definícii komponenty PxWebQuery, kde hodnota v hranatých zátvorkách je názov stĺpca:

wquAdresar.Columns["NAME"].Caption = "Priezvisko a Meno";

Zmena popisku komponenty PxComboBox (Label):
Zmenu popisku komponenty PxComboBox, okrem centrálnej definície, môžeme vykonať nasledujúcim spôsobom:

cmbPravnaForma.Caption = "Právna forma 2";



Filtrovať obsah komponenty PxComboBox, môžeme iba keď je na komponentu PxWebQuery a daný stĺpec uvalený len parameter AddParamWebQuery, a nie parameter AddParamKey.

Komponenta PxComboBox má property "Filter" do ktorej, môžeme zadať výsledný výraz, pomocou ktorého budeme filtrovať obsah komponenty PxComboBox. Vo výraze používame názvy stĺpcov, ktoré existujú v číselníku komponenty PxWebQuery, ktorý je pripojený k hlavnej tabuľke cez parameter AddParamWebQuery.

Viac príklad dole:

protected void rblZbierka_SelectedIndexChanged(object sender, EventArgs e)
{
  string sStr = rblZaner.SelectedValue;
  cmbKategoriaZaner.Filter = "Zaner='" + sStr + "' and KategoriaZaner<>''";
  cmbKategoriaZaner.Refresh();
}



Tu nájdete funkčný príklad s komponentou PxComboBox, aj so zdrojovými kódmi. Tento funkčný príklad na tomto webe, beží pod databázou MySQL 5.0.


P.č. Názov príkladu Zdrojové Kódy SQL Script
1.5. Adresar.aspx
Adresar.aspx.cs
AddAdresar.aspx
AddAdresar.aspx.cs
SQLScript_MySQL.5.1
SQLScript_MySQL.5.0



Ďalšie články o Px Frameworku:



Nie je zmyslom, tejto časti webu dopodrobna popisovať prácu s komponentami PxFrameworku, podrobný popis komponent najdete v manuali, ktorý si môžete stiahnuť tu: Download manual pre Px Framework