14. juni 2009 - 18:43Der er
7 kommentarer og 1 løsning
Opstarts hjaelp til simpel side.
Hej,
Jeg er absolut nybegynder i asp, og skal til at lave en simpel hjemmeside. Dertil har jeg bestilt en tyk bog, som dog ikke er ankommet endnu. Via denne hjemmeside skal jeg have mulighed for at betjene en maskine; interfacet til maskinstyringen har jeg paa plads, saa det er ikke spoergsmaalet.
Min kode indtil nu ser saaledes ud:
<%@ Language=VBScript %> <%Option Explicit Dim intActual, intSet Application.Lock intSet = cint(Request.Querystring("Neuer Modus")) if intset = 1 then call TcPLC.WriteVar(".bModus1HMI", 1) end if if intset = 2 then call TcPLC.WriteVar(".bModus2HMI", 1) end if if intset = 3 then call TcPLC.WriteVar(".bModus3HMI", 1) end if if intset = 4 then call TcPLC.WriteVar(".bModus4HMI", 1) end if if intset = 5 then call TcPLC.WriteVar(".bModus5HMI", 1) end if if intset = 6 then call TcPLC.WriteVar(".bModus6HMI", 1) end if
Paa siden faar man vist et edit felt til indtastning af et tal mellem 1 og 6. Er tallet f.eks. 1, saettes det tilsvarende bit i maskinens styring.
Mit spoergsmaal er nu: Hvordan kan jeg lave 6 forskellige knapper (hedder de ogsaa buttons i asp?) som hver isaer saetter det tilsvarende bit i styringen, i stedet for at tallet skal indtastes i en edit?
Sikkert et meget basalt spoergsmaal, men som sagt er "den tykke bog" ikke kommet endnu, og jeg skal videre med dette projekt NU!
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
ASP har ingen kontroller til visning på klient-niveau så nej, der er ikke noget der hedder Button i ASP. Du bliver i stedet nødt til at benytte almindelig HTML-tags, i dit tilfælde en input type="button" ( http://w3schools.com/tags/tag_input.asp ).
Du kan også sagtens nøjes med at lave et link - fx side.asp?tal=2 - og når man klikker på linket fanges værdien 2 med Request.QueryString("tal") og så vil du kunne bruge det i din if-sætning.
Din serverkode kan i øvrigt nok forkortes til dette;
<%@ Language=VBScript %> <%Option Explicit Dim intActual, intSet intSet = cint(Request.Querystring("Neuer Modus")) if intset >= 1 and intSet <= 6 then Application.Lock call TcPLC.WriteVar(".bModus" & intSet & "HMI", 1) Application.Unlock%> end if intActual = TcPLC.ReadVar(".imodusHMI") %>
Hvorfor skal du gøre dette?
1. Det er mere elegant og lettere at vedligeholde 2. Du låser hele din webapplikation i kortere tid
Jeg antager at ReadVar ikke kræver at applikationen er låst for at sikre værdien er korrekt (der er vel ikke nogen samtidighedsproblemer forbundet med at læse denne værdi?)...
Tak for svarene, som jeg har fattet. Jeg i nu kommet i fuld gang med min nye bog, som godt nok omhandler asp.net 3.5. Det, som jeg vil koncentrere mig om, er derfor asp.net. Er det noget, I har styr paa, eller skal jeg gaa over i den rette kategori med dette spoergsmaal?
Jeg vil gerne forhoeje point for evt. hjaelp til foelgende:
Den test side, jeg har skrevet indtil nu (se ovenfor), er skrevet i asp.
Applikationen indeholder en global.asp fil: <OBJECT RUNAT="Server" SCOPE="Application" ID="TcPLC" PROGID="TcScript.TcScriptSync"> </OBJECT> <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart() Call TcPLC.ConnectTo("", 801) End Sub </SCRIPT>
Selve siden er saa koden, som I kan se i det oprindelige spoergsmaal, nemlig: <%@ Language=VBScript %> <%Option Explicit Dim intActual, intSet Application.Lock intSet = cint(Request.Querystring("Neuer Modus")) if intset = 1 then call TcPLC.WriteVar(".bModus1HMI", 1) end if if intset = 2 then call TcPLC.WriteVar(".bModus2HMI", 1) end if if intset = 3 then call TcPLC.WriteVar(".bModus3HMI", 1) end if if intset = 4 then call TcPLC.WriteVar(".bModus4HMI", 1) end if if intset = 5 then call TcPLC.WriteVar(".bModus5HMI", 1) end if if intset = 6 then call TcPLC.WriteVar(".bModus6HMI", 1) end if
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.