
Mellékelt példa megnyitása előtt szükséges egy SessionData 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.
Készítünk egy olyan web oldalt, melyen egy TextBox-on keresztül a felhasználó tetszőleges szövegeket vehet fel egy táblázatba. Biztosítanunk kell, hogy ez a táblázat minden egyes kliens esetén tetszőleges tartalmú lehessen.
Web oldal kezelésénél két eset lehetséges. Az egyik eset az, amikor a program először indul, ilyenkor a táblázat még üres. Másik eset az, amikor már egy vagy két sort tartalmaz a táblázat, ez akkor következik be, amikor a felhasználó új adatot ad meg.
Amikor a Page osztály Load eseménye fut, akkor ellenőrizzük az IsPostBack property segítségével, hogy ez az első megjelenése a web oldalunknak, vagy sem. Első megjelenés esetén meghívjuk a LoadData és a SetData belső függvényünket, melyek az adatok megjelenítéséről gondoskodnak.
Ahhoz, hogy a Form-on lévő egyetlen nyomógomb Click eseménye akkor is létrejöjjön, ha a felhasználó nem egérrel kattint rajta, hanem a TextBox-on állva egy enter-t nyom, szükséges regisztrálnunk ezt a gombot a RegisterRequiresRaiseEvent függvény segítségével.
private void Page_Load(object sender, System.EventArgs e)
{
RegisterRequiresRaiseEvent(Button1);
if (!IsPostBack)
{
LoadData();
SetData();
}
}
Amikor a felhasználó új adatot ad meg, akkor jön létre a Button1 gomb Click eseménye. Itt ismét a LoadData függvényt hívjuk meg, mely elvégzi a már esetlegesen tárolt adatok betöltését, illetve szükség esetén az adat tábla létrehozását.
Ezt követően létrehozunk egy tömböt, melynek első elemében tároljuk az aktuális időpontot, második elemében pedig a TextBox-ban megadott adatot.
private void Button1_Click(object sender, System.EventArgs e)
{
LoadData();
object[] o = new object[2];
o[0] = DateTime.Now;
o[1] = TextBox1.Text;
A tömb feltöltése után az adattáblához hozzáadjuk az új sort.
Ezt követően tároljuk az adattáblát a Session kollekcióban SessionData néven. A Session kollekció biztosítja azt, hogy a benne tárolt adat az adott kliens folyamatához kötődik, így más kliensek adatával nem keveredik össze, vagyis ahány böngészőbe kerül betöltésre az alkalmazásunk, annyi példában tárolódik a SessionData nevű adattáblánk.
Session["SessionData"] = dt;
Végezetül a SetData függvényt hívjuk, mely a DataGrid-hez köti az adattábla adatait.
Nézzük most a már többször is használt LoadData függvényt. Itt első lépésben megpróbáljuk a Session kollekcióból kiolvasni az adattáblánkat, amennyiben null értéket kapunk vissza, így az az eset áll fenn, hogy alkalmazásunk most fut először és még nem lett megadva adat.
private void LoadData()
{
dt = (DataTable)Session["SessionData"];
if (dt == null)
{
Ez esetben létre kell hoznunk egy új adattáblát, és megadni annak szerkezetét.
dt = new DataTable();
dt.Columns.Add("DataTime", Type.GetType("System.DateTime"));
dt.Columns.Add("Data", Type.GetType("System.String"));
}
}
A SetData függvényben nincs más teendőnk mint az adattáblánkat a WebForm-on lévő DataGridhez kötni.
private void SetData()
{
DataGrid1.DataSource = dt.DefaultView;
DataGrid1.DataBind();
}