HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Web DataGrid


DataGrid 8. rész

Példaprogram letöltése

11748 bájt

A sorozat befejező részében azt vizsgáljuk, hogy miként hozhatunk létre olyan oszlopot a táblázatban, mely linkeket tartalmaz. Ezek a linkek bárhova mutathatnak, így tulajdonképpen bármilyen feladat megvalósítható velük. Mostani példában mi arra használjuk ezeket, hogy egy SQL lekérdezés eredményében megjelenő master sorokhoz tartozó detail sorokat megjelenítsük az adott linkre történő kattintáskor.

A mellékelt példa kipróbálásához hozzon létre egy DataGrid08 virtuális könyvtárat a web kiszolgálón, mely mutasson a mellékelt példa könyvtárára. Futtatás előtt a WebForm1.aspx.cs 64. sorában lévő SqlConnection sztringet javítsa úgy, hogy elérhető legyen az ön rendszerében lévő MS SQL szerver.
Nézzük most a megvalósítást. A WebForm-ra miután feltettünk egy DataGrid kontrollt, válasszuk a jobb gombra megjelenő menüből a Property Builder menüpontot. A Columns lapon az Available Columns listából válasszuk a HyperLink Column elemet és mozgassuk át a Selected Columns listájába.
Nézzük milyen lehetőségeink vannak a HyperLinkColumn properties-ben.
A Text mezőben megadhatunk egy tetszőleges feliratot, mely minden cellában megjelenik. Ha cellánként különböző feliratot szeretnénk és az adatforrásban van egy olyan mező, melynek értékeit felhasználhatnánk e célra, akkor a Text field mezőbe írjuk ennek nevét.
Tetszőleges URL-t megadhatunk az URL mezőbe, de lehetőség van az URL format string-nél is egy URL megadásra, melyben kapcsos zárójelek között változót is használhatunk, pl.: WebForm1.aspx?orderid={0}. Ekkor a {0} helyére az URL field mezőben megadott adatforrás adott értéke kerül. Jelen példánknál maradva a {0} helyére az SQL lekérdezés adott sorának az OrderID mezőjének értéke lesz behelyettesítve.
Ennyi előkészítés után most nézzük a forráskódot.
Itt a lap betöltésekor meghívjuk belső ShowData nevű függvényünket, mely egyetlen sztring paramétert vár, melyben az aktuális OrderID értékét kell, hogy átadjuk.
     private void Page_Load(object sender, System.EventArgs e)
    {
      ShowData(Request.QueryString["orderid"]); 
    }
A program működése a ShowData függvényen belül kettéválik. Amikor a program indul, akkor nyilván a felhasználó még nem kattinthatott egyik linkre sem, így az url-ben nem fog szerepelni az OrderID paramétert. Ekkor a fő (master) tábla adatait kell megjelenítenünk, mely tartalmazza a linkeket az adott detail táblára vonatkozólag. Ha valamely linkre kattint a felhasználó, mely mondjuk így néz ki: http://localhost/DataGrid08/WebForm1.aspx?orderid=10254, akkor ott már adott lesz az OrderID paraméter, így megjeleníthetjük a detail táblát. Ezt felhasználva az OrderID paraméter meglététől függően kettéválaszthatjuk a programunk futását a ShowData függvényen belül.
Első lépésként létrehozunk egy kapcsolatot az SQL szerverrel.
    private void ShowData(string id)
    {
      SqlConnection connection = new SqlConnection("data source=as1\\as1sql;user id=sa;password=;initial catalog=northwind");
      connection.Open();
      ...
Ezt követően ellenőrizzük, hogy az OrderID paraméter adott-e. Ha nem, akkor az Orders táblára futtatunk egy lekérdezést, ellenkező esetben az Order Details táblára.
      if (id == null)
      {
        da = new SqlDataAdapter("select OrderID, CustomerID from Orders", connection);
      }
      else
      {
        da = new SqlDataAdapter("select * from \"Order Details\" where OrderID=" + id, connection);
      }
Ezt követően már csak az adatok megjelenítése marad hátra, mely a szokásos módon történik.
      da.Fill(ds, "Orders");            
      DataGrid1.DataSource = new DataView(ds.Tables["Orders"]);
      DataGrid1.DataBind();      
    }

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