C# - Fájlok tartalmának betöltése script-ből

forráskód letöltése
A DHTML lehetőségeinek köszönhetően képesek vagyunk az eredetei képességeiket messze meghaladó jellemzőket kölcsönözni a Webes vezérlőknek. Elegendő egy hivatkozást megadni az új viselkedésformára, és használni az elérhető eszközöket. Cikkünkben is egy ilyen, az Internet Explorer 5. verziójától elérhető módszert mutatunk be, melyek eredményeképpen egy állományt töltünk be egy szövegmezőbe egy mozdulattal.
Mellékelt példa megnyitása előtt szükséges egy LoadFileBehavior 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.
A példánkban egy szövegmezőbe töltünk be egy állományt, mely az alkalmazás mappájában található. Természetesen a módszer lehetővé teszi – amennyiben a kérést a kért erőforrással rendelkező kiszolgáló engedélyezi - hogy egy URL-el azonosított állomány tartalmát töltsük be a szövegmezőbe.
A módszer érdekében a szövegmezőnket felruházzuk a DOWNLOAD viselkedésformával, melynek eredményeképpen a fájltartalom, mint karaktersorozat a kontrol innerText property-jébe kerül.
Ennek érdekében elhelyezzük a következő HTML-kódot a weblapunk egy tetszőleges helyére a <BODY></BODY> elemek közé. A HTML vezérlő nem jelenik meg a weblapon, csupán azért szükséges, hogy metódusát meghívjuk.
<IE:DOWNLOAD ID="oDL" STYLE="BEHAVIOR:url(#default#download)" />
A szövegmezőnk egy egyszerű HTML-vezérlő:
<TEXTAREA id="textbox" style="..." rows="8" cols="29">
A művelethez szükségünk van egy JavaScript függvényre, mely elvégzi az adott műveletet az állománnyal, jelen esetben betölti azt a kontrolba.
function doDownLoad(s)
{
  document.all.textbox.innerText = s;
  ...
}
Látható, hogy a függvény átlagos felépítésű, azonban specifikálnunk kell egy bemenő paramétert, mely tartalmazza a fájl tartalmát.
Az IE kontrolnak egyetlen függvénye van, mely meghívja a doDownLoad metódusunkat. A függvény neve startDownload, szintaxisa pedig a következő:
download.startDownload(sUrl, fpCallback);
A függvény első paramétere tartalmazza a betöltendő állomány elérési útvonalát, vagy URL-jét, a második paraméter pedig a kezelőfüggvényt, melyben meghatározzuk a műveletet.
A lapra helyezett nyomógombbal indíthatjuk a betöltést. A gomb onclick attribútumában helyeztük el a startDownload függvényt meghívó kódot:
onclick="javascript:oDL.startDownload('PlainText.txt', doDownLoad)"
A módszer segítségével megtehetjük, hogy egy HTML állományt töltünk be például egy DIV vezérlőbe, ekkor a betöltéskor a kontrol innerHTML property-jének kellene értékül adni a függvény bemenő paraméterét. Ezzel elérhetjük, hogy a DIV elem tartalmát folyamatosan frissítsük anélkül, hogy a főoldal kódjában bármi megváltozna.