C# - Szerver oldali script

ASP.NET 6. rész

forráskód letöltése
Az ASPX állományokba helyezett script-et szerver oldalon futtatva számtalan hasznos lehetőség tárul elénk. Ebből nézzünk meg néhányat sorozatunk mostani részében.
A megvalósítandó feladat a következő: legyen a web oldalon egy legördíthető lista, melyben számokat sorolunk fel. A felhasználó ezek közül választhat, majd az OK gombra történő kattintás után jelenjen meg egy link ezen a web oldalon, betűtípusának mérete pedig egyezzen a listában kiválasztott értékkel. Fontos, hogy a lista ekkor az aktuálisan kiválasztott értéken álljon.
A mellékelt WebForm1.aspx tartalmát tekintve azt a következőképpen hoztuk létre:
    <form action="WebForm1.aspx">
Válasszon betűméretet:
Tudnunk kell, hogy ha script kódot szeretnénk elhelyezni az oldalon, akkor azt a <% és %> jelek között tehetjük meg.
        <% 
          string s = "";   
Első lépésként a következőt tesszünk: megvizsgáljuk, hogy az oldal kapott-e fontsize nevű paramétert (az URL ez esetben mondjuk ez lehetne: http://localhost/WebForm1.aspx?fontsize=30)
          if (Request.QueryString["fontsize"] != null) {  
Ha van ilyen paraméter, akkor annak értékét eltároljuk az s nevű változónkba.
            s = Request.QueryString["fontsize"];
          }
        %>
Szükséges tehát egy legördíthető lista, mely HTML nyelven egy select objektum.
      <select name="fontsize">        
Itt kellene megadnunk a lista elemeit, de minek írogassuk be a betűméreteket, mikor azt egy ciklussal is generálhatjuk. Legyen tehát egy for ciklusunk, mely 10 és 60 közötti számokat generál 5-el léptetve.
        <% for (int i=10; i<=60; i+=5) { %>
Most már jöhet egy elem leírása, vagyis az option elem, melynek paraméterként meg kell adni a selected kulcsszót abban az esetben, ha szeretnénk, hogy az adott elem kijelölt legyen a listában. Mivel a feladat úgy szól, hogy ha már választott a felhasználó, akkor az a következőkben kijelölt legyen, így itt egy vizsgálatra lesz szükség. Ezért beszúrunk egy kis script-et, mely a következőt teszi: egy if-es szerkezetben ellenőrzi, hogy a ciklus változó aktuális értéke egyezik-e az s változóban tárolt értékkel. Ha igen, akkor az aktuális option elemhez szükség van a selected kulcsszóra. Ekkor nincs más dolgunk, mint a Response objektum Write függvényével beszúrni az aktuális helyre a selected szót.
További teendő, hogy az option-hoz tartozó value paraméter is értéket kapjon. Ez nem más lesz, mint a ciklus változó aktuális értéke. Ha a <% jel helyett a <%= jelet használjuk, akkor ezzel azt érjük el, hogy a script-ben megfogalmazott kifejezés eredménye kerül beírásra a lap adott pozíciójára. Ez most a ciklusváltozó értéke lesz.
            <option <% if (s == i.ToString()){Response.Write("selected");} %> value="<%=i%>"> 
Meg kell adnunk a listában megjelenő szöveget is, melyet szintén a ciklusváltozó aktuális értékéből képzünk.
               <%=i%> pt
Ezt követően zárhatjuk az option elemet.
            </option>
E rész eredményeképpen egy option elem a felhasználó böngészőjébe küldött HTML lapon a következőképpen nézne ki, ha mondjuk pont az a kijelölt:
<option selected value=”20”>20 pt</option>
        <% }%>
      </select> 
Ezzel a legördíthető lista kész, elhelyezünk még egy OK gombot.
      <input type="submit" value="Ok">
Szükség lesz még egy feliratra, mely a kiválasztott betűmérettel jelenik meg. A szöveg, vagyis a link beszúrását csak akkor végezzük el, ha már adott a betűméret, vagyis az s változó értéke nem null.
      <% if (s != "") { %>      
Ebben az esetben létrehozunk egy bekezdést, melyben a betűméretet a fontsize paraméterben kapott érték alapján állítjuk be.
        <p style="font-size: <%=Request.QueryString["fontsize"] %>pt">
           <b><a href="http://www.SoftwareOnline.hu">Software Online</a></b>
        </p>      
      <% } %>

ASP.NET cikksorozat