Avatar billede Lasse Novice
24. januar 2002 - 17:18 Der er 4 kommentarer og
1 løsning

asp.net og eventhandler funktioner

Jeg har en side men logikken virker ikke efter hensigten. Selve asp.net dokumentet indeholder flere html dokumenter. Det er bygget op med Steps. Step1 => Step2, Step2 => Step3.

Under hvert step er der en knap der er forbundet med en funktion. Det vil sige nar der trykkes paa en knap under step1, skal den gaa til step HVIS der ikke er fejl(der uploades en fil).

Med det nye asp.net er der mange nye fanzye features, og jeg vil selvfoelgelig gerne bruge disse. Er der en eller anden maade man kan groupe en masse HTML paa(et step i mit tilfaelde) med en asp tag saa de kan blive aktiveret/deaktiveret. Saaledes at man kan bruge step1.Enabled = true.

Ja, det er saadan set mit store problem. Lige nu har goer jeg det ved at saette en variable indeni eventhandler funktionen, og naar program eksekveringen saa kommer ned til HTML delen, spoerger jeg hvilken vaerdi variablen er sat til.

Jeg vedlaegger lige koden nedenunder.... det er sikkert rodet det jeg har skrevet, men jeg svarer gerne paa spg.

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.IO" %>

<script language="VB" runat="server">

Dim con1 As SqlConnection = New SqlConnection( "Server=IntranetServer;UID=Maintain;PWD=Maintain;Database=Thatcham;" )
Dim cmd1 As SqlCommand
Dim dtr1 As SqlDataReader
Dim strStep As String

Sub Page_Load
    strStep = 1
End Sub

Sub GotoStep1_Click(Sender As Object, E As EventArgs)
    strStep = 1
End Sub

Sub GotoStep3_Click(Sender As Object, E As EventArgs)
    strStep = 3
    lblResponse.text="You are in step 3"
End Sub


Sub GotoStep2_Click(Sender As Object, E As EventArgs)
    strStep = 2
    If Not IsNothing( txtUpload.PostedFile ) and txtUpload.PostedFile.FileName <> "" Then
        Dim strFileName as string = txtUpload.PostedFile.FileName

        'saveto temporary folder
        Dim strFilesFolderTemp as string = "C:\files\temp\"
           
        'saveto production folder
        Dim strFilesFolderProd as string = "C:\files\cars\"

        'Creates temporary folder if it does not exist
        If not Directory.Exists(strFilesFolderTemp) Then
            Directory.CreateDirectory(strFilesFolderTemp)
        End If
           
        'Creates production folder if it does not exist
        If not Directory.Exists(strFilesFolderProd) Then
            Directory.CreateDirectory(strFilesFolderProd)
        End If
           
        'Find first name of file uploaded
        strFileName = Path.GetFileName(strFileName)
        strFileName = Left(strFileName ,strFileName.IndexOf("."))
           
        'Extracting years and doors of filename and put them into their respective textboxes
        Dim arrFileNameSplit() as string
        arrFileNameSplit = strFileName.split("-")
        txtDoors.text = arrFileNameSplit(3)
        txtYear.text = arrFileNameSplit(2)
           
        Dim iFileNameNewVersion as Integer = 10

        'Searches for previous physical versions of this file and thereby setting the right version number to the new file
        Dim arrFiles() as string = Directory.GetFiles(strFilesFolderProd, strFileName & "*")
        Dim file as string
        For Each file in arrFiles
            Dim iFileNameOldVersion as Integer = CInt(Mid(file,file.IndexOf(".")-1,2)) 'Potentiel error cause string is 1-based
            If iFileNameOldVersion >= iFileNameNewVersion Then
                iFileNameNewVersion = iFileNameOldVersion + 1
            End if
        Next

        'Save Uploaded file to server
        strFilesFolderTemp = strFilesFolderTemp & strFileName & "-" & CStr(iFileNameNewVersion) & ".pdf"
        txtUpload.PostedFile.SaveAs(strFilesFolderTemp)

        con1.Open()
        cmd1 = New SqlCommand( "select IDbrand, brand from brands", con1 )
        dtr1 = cmd1.ExecuteReader()
        dropBrand.DataSource = dtr1
        dropBrand.DataBind()
        con1.close()
    Else
       
    End If
End Sub
</script>



<html>
    <body>
    <asp:label id="test" runat="server"/>
    <form enctype="multipart/form-data" runat="server">
        <table>
            <%If strStep = 1 Then%>
            <tr>
                <th colspan="3">
                Step 1
                </th>
            </tr>
            <tr>
                <td>
                Upload File
                </td>
                <td>
                <input id="txtUpload" type="file" runat="server">
                </td>
                <td>
                <asp:RegularExpressionValidator
                    ControlToValidate="txtUpload"
                    Text="xx-yyyyyyy-zz-z"
                    ValidationExpression=".*\\\w{2}-[\w\d]{7}-\d{2}-\d\.pdf"
                    ForeColor="Red"
                    Runat="server" />
                </td>
            </tr>
            <tr>
                <td colspan="2">
                <asp:button
                    id="a2"
                    Text="Upload File"
                    CausesValidation="True"
                    OnClick="GotoStep2_Click"
                    runat="server"/>
                </td>
            </tr>
            <%Else If strStep = 2 Then%>
            <tr>
                <th colspan="3">
                Step 2
                </th>
            </tr>
            <tr>
                <td>
                Brand
                </td>
                <td>
                <asp:DropDownList
                    id="dropBrand"
                    DataTextField="brand"
                    DataValueField="IDbrand"
                    runat="server"/>
                </td>
                <td>
                <asp:RequiredFieldValidator
                    ControlToValidate="dropBrand"
                    Text="Choose brand from list"
                    runat="server"/>
                </td>
            </tr>
            <tr>
                <td>
                Model
                </td>
                <td>
                <asp:TextBox id="txtModel" runat="server"/>
                </td>
                <td>
                <asp:RequiredFieldValidator
                    ControlToValidate="txtModel"
                    Text="Enter a model"
                    runat="server"/>
                </td>
            </tr>
            <tr>
                <td>
                Doors
                </td>
                <td>
                <asp:TextBox
                    readonly="true"
                    id="txtDoors"
                    runat="server"/>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                Year
                </td>
                <td>
                <asp:TextBox
                    readonly="true"
                    id="txtYear"
                    runat="server"/>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                <asp:button
                    id="a1"
                    CausesValidation="False"
                    text="Upload another file" 
                    OnClick="GotoStep1_Click"
                    runat="server"/>
                <asp:button
                    id="a3"
                    CausesValidation="True"
                    text="Insert car"
                    OnClick="GotoStep3_Click"
                    runat="server"/>
                </td>
            </tr>
            <%Else If strStep = 3 Then%>
            <tr>
                <th colspan="3">
                Step 3
                </th>
            </tr>
            <tr>
                <td>
                Car inserted succesfully:
                <asp:label id="lblResponse" Runat="Server"/>
                </td>
            </tr>
            <%End If%>
        </table>
        <asp:PlaceHolder id="plhForm" Runat="Server" />
    </form>
    </body>
</html>
Avatar billede odegaard Nybegynder
24. januar 2002 - 17:36 #1
Ja, sæt sådan en her omkring et step:
<asp:panel ID="step1_panel" runat="server">
[kode her]
</asp:panel>

I en funktion skriver du så step1_panel.Visible=false
hvis du vil slukke for alt inden for dette panel.

Du kan også sætte en visible="false" ind som attribut i webkontrollen, hvis den skal starte med at være "slukket".
/Odegaard
Avatar billede Lasse Novice
24. januar 2002 - 17:41 #2
man kan vel ogsaa saette dem ind i en label og saa bruge labelnavn.Enabled = true/false???
Avatar billede Lasse Novice
24. januar 2002 - 17:44 #3
den sidste loesning er faktisk bedst... da et panel laver et div element, en label et span element.

og et span element er inline... et div element er brydende.... eller har du et eller andet til dette punkt odegaard
Avatar billede Lasse Novice
24. januar 2002 - 18:12 #4
naeh... den fader det bare... takker for hjaelpen odegaard...
Avatar billede odegaard Nybegynder
24. januar 2002 - 19:29 #5
Ja selvfølgelig kan du det.
Jeg tror faktisk du kan bruge hvad som helst. Jeg valgte DIV, fordi det plejer jeg :-)
Bortset fra at den er brydende, så aner jeg faktisk ikke hvad forskellen er hehehe...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester