HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

DataGrid sorainak formázása egy adott oszlop értékétől függően


Példaprogram letöltése

10321 bájt

Egy DataGrid-ben megjelenő adatsorokat szemléletesebbé tehetünk azáltal, hogy a háttérszínüket egy adott oszlop értékétől függően állítjuk be. Nézzünk egy konkrét példát: adott egy számlázó program, ez esetben az egyes számlákat láthatjuk egy-egy sorban. Jelöljük zölddel azokat, melyek már ki lettek fizetve, kékkel azokat, melyeket még nem nyomtattunk ki, pirossal azokat, melyeknek már lejárt a fizetési határidejük és így tovább. Ettől kezdve már ránézésre látható lesz, hogy melyikkel kell foglalkoznia a felhasználónak.

A mellékelt példa használatához a WebForm1.aspx.cs 31. sorában lévő connStr változó értékét módosítsa úgy, hogy az SQL szerver Northwind példaadatbázisa elérhető legyen.
A DataGrid feltöltését adatokkal egy sql lekérdezés alapján tesszük meg a Page Load eseményénél.
    private void Page_Load(object sender, System.EventArgs e)
    {
      ...
      SqlDataAdapter da = new SqlDataAdapter("select top 10 * from orders", connection);
      DataSet ds = new DataSet();
      da.Fill(ds);
A lekérdezés futtatása után az eredmény táblát a DataGrid-hez kötjük. Az adatok megjelenítése innen kezdve már adott, most már csak a formázás marad hátra.
      DataGrid1.DataSource = ds.Tables[0].DefaultView;
      DataGrid1.DataBind();
Ehhez a művelethez végig kell mennünk az adattábla összes során, melyet a DataTable osztály Rows property-je ad, DataRowCollection osztály formájában.
      DataRowCollection drc = ds.Tables[0].Rows;
      Color c;
      for (int i=0; i<drc.Count; i++)
      {
A mellékelt példában a ShipVia nevű oszlop értéke alapján döntjük el a háttérszínt, mely a 7. eleme a DataRowCollection adott, i-edik sorának.
        switch (Convert.ToInt32(drc[i][6]))
        {
          case 2:
            c = Color.FromArgb(0xff, 0xff, 0xcc);
            break;
          case 3:
            c = Color.FromArgb(0xcc, 0xff, 0x99);
            break;
          default:
            c = Color.White;
            break;
        }
A DataGrid sorának háttérszínét annak Items property-jén keresztül érhetjük el a BackColor property felhasználásával.
        DataGrid1.Items[i].BackColor = c;
Lehetőségünk van nem csak a teljes sor háttérszínét beállítani, hanem a soron belül egy-egy cella tulajdonságait is elérhetjük:
        DataGrid1.Items[i].Cells[6].BackColor = Color.FromArgb(0xf4, 0xf4, 0xf4);
      }     

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 448. 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 |