HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TemplateColumn osztály bemutatása


A DataGridColumn osztály leszármazottai 3. rész

Példaprogram letöltése

11884 bájt

Cikksorozatunk mai számában a System.Web.UI.TemplateColumn osztály lehetőségeit mutatjuk be, mellyel elérhetjük, hogy tetszőleges adatokat helyezzünk el, tetszőleges elrendezésben egy oszlopon belül. A bemutatáskor kiderül, hogyan kell deklarálnunk a DataGrid kontrol ilyen típusú oszlopait, és property-jeivel hogyan alakíthatjuk azok megjelenését.

Mellékelt példa megnyitása előtt szükséges egy WebGridColumnTypes03 nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
Tulajdonságok áttekintése
A TemplateColumn osztály segítségével amellett, hogy tetszőleges adatokat helyezhetünk el az oszlopokban, testre szabhatjuk a fejléc, a lábléc és az adatmező megjelenését függetlenül a DataGrid kontrol egészét érintő formázási beállításoktól. Erre használhatók az osztály HeaderTemplate, FooterTemplate és ItemTemplate property-jei. De nézzük végig a property-ket sorban:
EditItemTemplate
Osztály: TemplateColumn
public virtual ITemplate EditItemTemplate {get; set;}
Megadható az adott cella megjelenése abban az esetben, amikor a cella értéke szerkesztésre kerül. A HTML-kódban az <EditItemTemplate></ EditItemTemplate> tagok között adhatjuk meg a megjelenítés formáját, mely lehet egy egyszerű szöveg, de lehet komplexebb is, akár kontrolok halmaza.
FooterStyle
Osztály: TemplateColumn
public virtual TableItemStyle FooterStyle {get;}
Testre szabhatjuk az adott oszlop lábléc mezőjét. A TableItemStyle típusú elem property-jein keresztül állíthatók a színek, és egyéb megjelenést befolyásoló attribútumok.
FooterTemplate
Osztály: TemplateColumn
public virtual ITemplate FooterTemplate {get; set;}
Megadhatjuk, hogy mit, és hogyan jeleníthetünk meg az adott oszlop lábléc mezőjében. A HTML-kódban a <FooterTemplate></FooterTemplate> tagok között megadhatunk kontrolokat, szövegeket egyaránt.
FooterText
Osztály: TemplateColumn
public virtual string FooterText {get; set;}
Megadható a lábléc mezőben megjelenő szöveg.
HeaderImageUrl
Osztály: TemplateColumn
public virtual string HeaderImageUrl {get; set;}
A property-ben megadhatjuk, hogy milyen képet szeretnénk látni az adott oszlop fejlécmezőjében szöveg helyett. Értékül egy valós URL-t kell megadni.
HeaderStyle
Osztály: TemplateColumn
public virtual TableItemStyle HeaderStyle {get;}
Testre szabhatjuk az adott oszlop fejléc mezőjét. A TableItemStyle típusú elem property-jein keresztül állíthatók a színek, és egyéb megjelenést befolyásoló attribútumok.
HeaderTemplate
Osztály: TemplateColumn
public virtual ITemplate HeaderTemplate {get; set;}
Megadhatjuk, hogy mit, és hogyan jeleníthetünk meg az adott oszlop fejléc mezőjében. A HTML-kódban a <HeaderTemplate></HeaderTemplate> tagok között megadhatunk kontrolokat, szövegeket egyaránt.
HeaderText
Osztály: TemplateColumn
public virtual string HeaderText {get; set;}
A property alkalmas annak a szövegnek a megadására, mely a fejlécmezőben megjelenik. Alapértelmezett értéke az üres karakterlánc (””), vagyis a String.Empty értéke.
ItemStyle
Osztály: TemplateColumn
public virtual TableItemStyle ItemStyle {get;}
Testre szabhatjuk az adott oszlop adatmezőjét. A TableItemStyle típusú elem property-jein keresztül állíthatók a színek, és egyéb megjelenést befolyásoló attribútumok.
ItemTemplate
Osztály: TemplateColumn
public virtual ITemplate ItemTemplate {get; set;}
Megadhatjuk, hogy mit, és hogyan jeleníthetünk meg az adott oszlop adatmezőjében. A HTML-kódban a <ItemTemplate></ItemTemplate> tagok között megadhatunk kontrolokat, szövegeket egyaránt.
SortExpression
Osztály: TemplateColumn
public virtual string SortExpression {get; set;}
Megadhatjuk annak a mezőnek a nevét az adatforrásban, melyet átadunk az OnSortCommand eseménykezelőnek, mint a sorba rendezés alapját képező mezőt. Amennyiben a DataGrid kontrolban engedélyezzük a sorba rendezést (AllowSorting property TRUE értékű), akkor azoknak az oszlopoknak a fejlécében, ahol beállítottuk a SortExpression property-t, egy LinkButton kontrol jelenik meg a HeaderText property-ben megadott szöveggel. A LinkButton kontrolra kattintva SortCommand esemény keletkezik, mely kezelhető, így megadhatjuk a rendezési sorrendet.
Visible
Osztály: TemplateColumn
public bool Visible {get; set;}
Meghatározhatjuk, hogy legyen-e látható az adott oszlop az oldal betöltődése után, vagy sem. Alapértelmezett értéke TRUE.
Alkalmazásbeli felhasználás
A mellékelt alkalmazásban egy egyszerű példát láthatunk arra, hogyan lehet TemplateColumn típusú oszlopban egy cellán belül tetszőleges kontrolt, abban pedig tetszőlegesen kalkulált értéket megjeleníteni.
A DataGrid kontrol forrását képező DataSet objektumba a lap betöltődésekor a products.xml nevű állományból töltjük be az adatokat.
Az adatforrás a Northwind adatbázis Products táblájának egy részét tartalmazza. A ProductID oszlop értékeit helyezzük el a DataGrid kontrol első oszlopában. A tábla másik három oszlopának értékét pedig egy TemplateColumn oszlopban helyezzük el, abban is egy HtmlTable kontrolban. Lássuk, hogy mit is kell tennünk a HTML-kódban annak érdekében, hogy ez megvalósítsuk. Kezdjük a DataGrid létrehozásával:
<asp:DataGrid id="grid" style="..." AutoGenerateColumns="False" SelectedItemStyle-HorizontalAlign="Center">
Az első oszlop deklarációja:
<Columns>
  <asp:BoundColumn DataField="ProductID" ItemStyle-Width="100" ItemStyle-HorizontalAlign="Center" HeaderText="Termék azonosítója" ItemStyle-Font-Bold="true" />
Következik a TemplateColumn oszlop létrehozása. Ebben a példában csak az adatmezőkre vonatkozó adatokat adjuk meg (ItemTemplate), a fej-, és lábléccel itt most nem dolgozunk:
  <asp:TemplateColumn HeaderText="Összefoglaló adatok" ItemStyle-Width="200" ItemStyle-Font-Size="10" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
A beágyazott kontrol egy három rekordot tartalmazó, két oszlopos HtmlTable kontrol, melyben az adatforrás három oszlopának értéke megjeleníthető. Az első oszlopban szerepelnek a feliratok, a másodikban a konkrét értékek. Első a ProductName mező értéke:
      ...
      <td align="right">
        <%# DataBinder.Eval(Container.DataItem, "ProductName")%>
      </td>
A UnitPrice mező értéke:
      <td align="right">
        <%# DataBinder.Eval(Container.DataItem, "UnitPrice")+" Ft" %>
      </td>
És a UnitInStock mező értéke:
      <td align="right">
        <%# DataBinder.Eval(Container.DataItem, "UnitsInStock") %>
      </td>
    </ItemTemplate>
  </asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Látható, hogy az oszlopon belül végtelen variációban adhatunk meg értékeket. A beágyazott ASP kód eredményeként pedig igazán rugalmas kódolásra van lehetőségünk. A felhasznált Eval metódusnak csupán meg kell adnunk azt az adatforrást, melyet a DataGrid kontrolunkhoz kapcsoltunk (ezt a Container objektum lekérdezésével kaphatjuk meg), valamint a mező nevét, melynek értékét konkrétan meg szeretnénk kapni.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 145. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |