En   Sk  
 
 
 
 
 
 
 
 

Články o Px Frameworku:


PxFilterView - vizuálna komponenta pre filtrovanie obsahu dát tabuľky v komponente PxWebQuery



S pomocou komponenty PxFilterView môžeme filtrovať obsah dát tabuľky v komponente PxWebQuery.

V súbore *.aspx sa komponenta PxFilterView definuje nasledovne:

<Prx:PxFilterView ID="filterSposOsoba" runat="server" />


Do komponenty PxFilterView zadávame parametre, výberové kritéria cez metódu AddParamFilter.
Podľa týchto parametrov sa nám dynamicky zostavuje komponenta PxFilterView. Viac obrázok dolu:

Obrázok PxFilterView


Do takto vykreslenej komponenty PxFilterView, zadávame výberové kritéria, z ktorých sa nám zostaví výsledný SQLScript, ktorý je potom priradený do komponenty PxWebQuery.

Na to aby sa nám vykreslil nasledujúci PxFilterView, v takejto podobe ako je na obrázku musíme zadať nasledujúce parametre:

 filterSposOsoba.AddParamFilter("IDTypOsoba""<b>Typ Osoby:</b>");
 filterSposOsoba.AddParamFilter("Miesto""<b>Kraj:</b>""Kraj1");
 filterSposOsoba.AddParamFilter("Miesto""<b>Okres:</b>""Okres1");
 filterSposOsoba.AddParamFilter("Miesto""<b>Obec:</b>""Obec1");
 filterSposOsoba.AddParamFilter("Specializacia""<b>Špecializácia:</b>""SPECIALIZATION1");
 filterSposOsoba.AddParamFilter("FIRST_NAME;LAST_NAME""<b>Hľadať reťazec:</b>");

 filterSposOsoba.OrigSQLSelect = "select * from SposOsoba";


Definícia metódy AddParamFilter:

public void AddParamFilter(string aFieldName, string aCaption)

public void AddParamFilter(string aFieldName, string aCaption, string aParentFieldName)

public void AddParamFilter(string aFieldName, string aCaption, string aParentFieldName,
    
string aChooseValueText)


Popis parametrov:

aFieldName - Meno stĺpca tabuľky komponenty PxWebQuery, podľa ktorého chceme filtrovať obsah dát tabuľky komponenty PxWebQuery
aCaption - Popisok, titulok riadkuv komponente PxFilterView
aParentFieldName - tento stĺpec sa vypĺňa len vtedy, keď na stĺpec definovaný v parametry aFieldName bol uvaleny parameter AddParamFlyComboBox alebo AddParamGreatWebQuery. Treba si uvedomiť že pokiaľ sú na nejaky aFieldName uvalené nasledovné parametre AddParamFlyComboBox alebo AddParamGreatWebQuery, tak tento field, stĺpec je zlučovaci, t.j. môže sa pod ním ukrývať mnoho fieldov. Takýto field môžeme nazvať ako child, a stĺpce ktoré zlučuje, ako Parent. Do parametra aParentFieldName zadáme konkrétne meno parent fieldu, podľa ktorého chceme filtrovať obsah dát tabuľky PxWebQuery
aChooseValueText - do tohto parametra zadávame text, ktorý sa nám bude zobrazovať v komponente PxFilterView, u konkretneho riadku zobrazenia, pokiaľ vyber bude vykonávaný v zozname(ComboBox). Tento text nám nahradí text "Zvoľte hodnotu". Viac obrázok hore.

Komponenta PxFilterView pracuje tak, že pri výbere zo zoznamu alebo zadaný nejakého textu a potvrdený klávesou Enter, sama generuje SQL príkaz. Vzhľadom na to že je pripojená ku konkrétnej komponente PxWebQuery, pri každej zmene je tento nový SQL príkaz priradený do komponenty PxWebQuery a je vykonaný ReOpen komponenty PxWebQuery. Takto pri zmene výberových kritérií komponenty PxFilterView, sa aj zmení obsah dát tabuľky PxWebQuery.

Ak by s me mali stĺpce v komponente PxWebQuery, na ktoré nie uvalený žiaden parameter (AddParamKey, AddParamWebQuery a pod.) a sú tieto stĺpce typu string, môžeme pri zadávaný parametra tieto stĺpce zlúčiť a oddeliť ich bodkočiarkou. Pri vyhľadávaný sa vložený výraz vyhľadáva v obidvoch týchto zadaných stĺpcoch. Viac príklad dole:

filterSposOsoba.AddParamFilter("FIRST_NAME;LAST_NAME""<b>Hľadať reťazec:</b>");


Potom keď do filtra PxFilterView, do riadku s popiskom "Hľadať reťazec", zadáme nejaké slovo, toto slovo bude vyhľadávané v obidvoch stĺpcoch, a tak bude vyfiltrovaná konečná podoba tabuľky.

Je zaujímavé podľa akých kritérií zostavuje komponenta PxFilterView svoju editačnú časť ? Pre stĺpce, na ktoré nebol uvalený žiadny parameter, sa v editačnej časti zjaví komponenta TextBox, do ktorej sa zadáva text, ako výberové kritérium. V prípade že na daný stĺpec bol uvalený parameter AddParamKey, AddParamWebQuery a pod. je komponenta TextBox nahradená komponentou DropDownList, aj s naplneným listom, obsahom tejto komponenty. Komponenta PxFilterView dokáže čítať obsah tabuliek a ich vzájomného prepojenie(jednotlivé parametre), a na základe toho zkompiluje výsledný panel komponenty PxFilterView.

Len na nás zaleží či dokážeme správne vyplniť všetky premenné ktoré sa zadávajú cez metódu AddParamFilter. Použitie komponenty PxFilterView môžete nájsť v príklade s názvom 510_CD_Titul_Px_Fram_Ajax, v každom inštalačnom balíčku Px Frameworku aj s príkladmi.




Tu nájdete funkčný príklad s komponentou PxFilterView, 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
5.10.
CDTitul.aspx
CDTitul.aspx.cs
Statistics.aspx
Statistics.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


 
  PxWebQuery
  PxSuperGrid
  PxEdit
  PxComboBox
  PxCheckBox
  PxJSDatePicker
  PxDbNavigator
  PxLabel
  PxFlyComboBox
  PxGreatRepeater
  PxChart
  PxUploader
  PxFilterView
  PxDbPopUp
  PxCheckBoxList
  PxRadioButtonList
  PxLogin
  PxSpeedButton
 
 
  AddParamKey()
  AddParamWebQuery()
  AddParamCheck()
  AddParamCheckList()
  AddParamRadioList()
  AddParamValidation()
  AddParamFlyCombo...
  AddParamGreatWeb...
 
 
  AddParamFilter()