C# - A DropDownList komponens Data kezdetű property-jeinek felhasználása

forráskód letöltése
A cikkben bemutatásra kerül a DropDownList komponens néhány olyan property-je, melyek egyrészt az adatforrás pontos megadását teszik lehetővé, másrészt az adatok kontrolban való megjelenítésében játszanak szerepet. A Data kezdetű property-k más kontroloknál is megtalálhatóak, így a cikkben ismertetett tulajdonságok sok helyen kamatoztathatóak.
Mellékelt példa megnyitása előtt szükséges egy DropDownListControls 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. Indítás előtt az SqlConnection komponens ConnectionString property-jének, valamint az SqlDataAdapter komponens SelectCommand objektumának CommandText property-jének értéket kell adni.
A mellékelt példa egy olyan ASP.NET alkalmazás, mely két DropDownList kontrollal demonstrálja az alább tárgyalandó property-k használatát. Az első adatforrásául egy adattáblákat tartalmazó DataSet komponens szolgál. Az adattáblák a már jól ismert Northwind adatbázis részei, így az alkalmazás elindítása előtt gondoskodni kell arról, hogy az adatbázis rendelkezzen a „Products” és az „Orders” táblákkal, valamint, hogy az ASP.NET alkalmazás, mint felhasználó hozzáférjen ezekhez a táblákhoz.
A tárgyalandó property-k:
DataSource
Osztály: object
public virtual object DataSource {get; set;}
A DropDownList komponens számára lehetővé teszi, hogy adatforrást rendeljünk a komponenshez. Ez lehet egy egyszerű lista tetszőleges elemekkel feltöltve:
protected ArrayList list = new ArrayList();
string s;
for(int i=0;i<10;i++)
{
  s = „Item” + i.ToString();
  list.Add(s);
}
DropDownList ddl = new DropDownList();
ddl.DataSource = list;
ddl.DataBind();
De lehet egy adatbázis tetszőleges táblája is, mint ahogy az a mellékelt példában is látható. Az adapter változó egy SqlDataAdapter komponenst reprezentál.
DataSet dataSet = new DataSet();
adapter.Fill(dataSet,”Products”);
...
Az SqlDataAdapter komponens Fill() metódusát annyiszor kell meghívni az adott DataSet-re, ahány táblát szeretnénk a vezérlőhöz kapcsolni.
DropDownList ddl = new DropDownList();
ddl.DataSource = dataSet;
ddl.DataBind();
Ilyenkor a DropDownList komponens a rendelkezésre álló táblák közül az elsőt használja.
DataMember
Osztály: string
public virtual string DataMember {get; set;}
Ennek megadásával specifikálhatjuk a szignifikáns adattáblát. A megadáshoz a feltöltéskor használt elnevezést kell beírni.
DropDownList ddl = new DropDownList();
ddl.DataMember = „Products”;
ddl.DataBind();
DataTextField
Osztály: string
public virtual string DataTextField {get; set;}
A property beállításával adhatjuk meg az adatforrás szöveget tartalmazó mezőjének nevét. Például, ha az adatforrás egy általunk készített adattábla:
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("StringValue", typeof (string)));
...
dr = dt.NewRow();
dr[0] = ...
dt.Rows.Add(dr);
DataView dv = new DataView(dt);
DropDownList ddl = new DropDownList();
ddl.DataSource = dv;
ddl.DataTextField = „StringValue”;
ddl.DataBind();
DataValueField
Osztály: string
public virtual string DataValueField {get; set;}
A property beállításával adhatjuk meg az adatforrás értéket tartalmazó mezőjének nevét. Az előbbi példánál maradva:
...
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
...
ddl.DataValueField = „StringValue”;
ddl.DataBind();
DataTextFormatString
Osztály: string
public virtual string DataTextFormatString {get; set;}
A property-vel adható meg, hogy az adatok milyen formában jelenjenek meg a kontrol mezőiben.
A property-t a következő karakteres formában kell megadni: {A:Bxx}. Az „A” értéke nulla kell hogy legyen, mivel egy cellában egy adat jelenhet meg. Az „xx” értéke adja meg a decimális pontosságot. A „B” a következő értékeket veheti fel:
Formázó karakter Megjegyzés
C Numerikus adat megjelenítése pénzügyi formátumban.
D Numerikus adat megjelenítése decimális formátumban.
E Numerikus adat megjelenítése exponenciális formátumban.
F Numerikus adat megjelenítése kerekített formátumban.
G Numerikus adat megjelenítése általános formátumban.
N Numerikus adat megjelenítése szám formátumban.
X Numerikus adat megjelenítése hexadecimális formátumban.
A felhasználáskor figyelni kell arra, hogy a DropDownList komponens DataTextField property-jében megadott mező elemeit lehet formázni a fenti karakterekkel.
DropDownList ddl = new DropDownList();
Ddl.DataTextField = „CurrencyValue”;
ddl2.DataTextFormatString = "Összeg: {0:C}";