CODICE VB DELLA PAGINA

codice:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Transactions
Imports System.Net.Mail
Imports System.IO
Imports System.Web.Configuration

Partial Class ravizza_super_admin_it_Nuova_offerta
    Inherits System.Web.UI.Page

    'Dim pnlTextBox As Panel
    Dim pnlDropDownList As Panel
    Dim strFields As String = "id"
    Public arr(1, 1) As String
    Dim i As Integer
    Dim elem As Integer

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            If Session("s_utente") = "" Then
                
            End If
            se_utente.Value = Session("s_utente")
            se_tipo.Value = Session("s_tipo")

            SqlDataSource1.SelectCommand = "SELECT CustSupp, CompanyName FROM MA_CustSupp ORDER BY CompanyName"
            SqlDataSource2.SelectCommand = "SELECT id, tipo_pag FROM TIPI_PAGAMENTO ORDER BY tipo_pag"
            
        End If

        SqlDataSource1.SelectCommand = "SELECT CustSupp, CompanyName FROM MA_CustSupp ORDER BY CompanyName"
        SqlDataSource2.SelectCommand = "SELECT id, tipo_pag FROM TIPI_PAGAMENTO ORDER BY tipo_pag"


        'Create a Dynamic Panel 
        pnlDropDownList = New Panel()
        pnlDropDownList.ID = "pnlDropDownList"
        pnlDropDownList.BorderWidth = 0
        pnlDropDownList.Width = 750
        Me.blocco2.Controls.Add(pnlDropDownList)


        'Create a LinkDynamic Button to Add TextBoxes 
        Dim btnAddDdl As New LinkButton()
        btnAddDdl.ID = "btnAddDdl"
        btnAddDdl.Text = "Aggiungi Articolo"
        AddHandler btnAddDdl.Click, AddressOf btnAdd_Click
        Me.blocco2.Controls.Add(btnAddDdl)

        'Recreate Controls
        RecreateControls("ddlDynamic", "DropDownList")



       
    End Sub

    Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim cnt As Integer = FindOccurence("ddlDynamic")
        CreateDropDownList("ddlDynamic-" & Convert.ToString(cnt + 1))
        n_articoli.Value = cnt + 1

    End Sub
    Private Function FindOccurence(ByVal substr As String) As Integer
        Dim reqstr As String = Request.Form.ToString()
        Return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length)
    End Function
    Private Sub RecreateControls(ByVal ctrlPrefix As String, ByVal ctrlType As String)
        Dim ctrls As String() = Request.Form.ToString().Split("&"c)
        Dim cnt As Integer = FindOccurence(ctrlPrefix)
        If cnt > 0 Then
            For k As Integer = 1 To cnt
                For i As Integer = 0 To ctrls.Length - 1
                    If ctrls(i).Contains((ctrlPrefix & "-") +  k.ToString()) AndAlso Not ctrls(i).Contains("EVENTTARGET") Then
                        Dim ctrlID As String = ctrls(i).Split("="c)(0)

                        ctrlID = ctrlID.Replace("ctl00%24MainContent%24Wizard1%24", "")
                        'ctl00%24MainContent%24Wizard1%24
                        If ctrlType = "DropDownList" Then
                            CreateDropDownList(ctrlID)
                        End If
                        Exit For
                    End If
                Next
            Next
        End If
    End Sub
    Private Sub CreateDropDownList(ByVal ID As String)

        Dim lt2 As New Label()
        lt2.Text = "<label for='" & ID & "'  class='class_left' style='width:150px'  >Articolo:</label><label for='listino" & ID & "'  class='class_left2' style='width:100px'  >Listino:</label><label for='qnt" & ID & "'  class='class_left1' style='width:60px'  >Quantit&agrave;:</label><label for='sconto" & ID  & "' class='class_left1' style='width:70px' >Sconto  %:</label><label for='totale" & ID & "'  class='class_left2' >Totale:</label>"
        pnlDropDownList.Controls.Add(lt2)

        Dim lt3 As New Literal()
        lt3.Text = "<br clear='all'>"
        pnlDropDownList.Controls.Add(lt3)

        Dim ddl As New DropDownList()
        ddl.ID = ID
        ddl.Items.Add(New ListItem("--Seleziona Articolo--", ""))


        Dim SQL As String = "SELECT Item, Description FROM MA_Items ORDER BY Item"
        Dim cmd As SqlCommand

        cmd = New SqlCommand(SQL, New SqlConnection(ConfigurationManager.ConnectionStrings("dbConnectionString").ToString))

        Try

            'APRE LA CONNESSIONE
            cmd.Connection.Open()
            'ESEGUE NLA QUERY, RESTITUISCE UN OGGETTO SqlDataReader

            Dim dr As SqlDataReader = (cmd.ExecuteReader(CommandBehavior.CloseConnection))

            If dr.HasRows Then
                'si sposta ciclicamente attraverso i record e visualizza i valori.
                Do While dr.Read
                    ddl.Items.Add(New ListItem(dr("Description"), dr("Item")))
                Loop


            End If

            dr.Close()

        Catch ex As Exception
            'messageBox.Show("Riportare il seguente errore al  programmatore: ERRORE 0161" & vbCrLf & ex.Message, "Errore sql")
            Exit Sub
        Finally
            cmd.Connection.Close()
        End Try


        ddl.AutoPostBack = True
        AddHandler ddl.SelectedIndexChanged, AddressOf OnSelectedIndexChanged
        pnlDropDownList.Controls.Add(ddl)

        Dim txt As New TextBox()
        txt.ID = "listino" & ID
        'txt.Attributes("class") = "class_left2"
        txt.AutoPostBack = False
        pnlDropDownList.Controls.Add(txt)

        txt = New TextBox()
        txt.ID = "qnt" & ID
        'txt.Attributes("class") = "class_left1"
        txt.AutoPostBack = True
        AddHandler txt.TextChanged, AddressOf OnTextChanged
        pnlDropDownList.Controls.Add(txt)

        txt = New TextBox()
        txt.ID = "sconto" & ID
        'txt.Attributes("class") = "class_left1"
        txt.AutoPostBack = True
        AddHandler txt.TextChanged, AddressOf OnTextChanged
        pnlDropDownList.Controls.Add(txt)

        txt = New TextBox()
        txt.ID = "totale" & ID
        'txt.Attributes("class") = "class_left2"
        txt.AutoPostBack = True
        AddHandler txt.TextChanged, AddressOf OnTextChanged
        pnlDropDownList.Controls.Add(txt)



        Dim lt As New Literal()
        lt.Text = "<br clear='all'>"
        pnlDropDownList.Controls.Add(lt)


    End Sub
    Protected Sub OnSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim ddl As DropDownList = DirectCast(sender, DropDownList)
        Dim ID As String = ddl.ID

        Dim C As Integer
        Dim sTmp As String = ""
        For C = 0 To Len(ddl.ID)
            If IsNumeric(Mid(ddl.ID, C + 1, 1)) Then
                sTmp = sTmp & Mid(ddl.ID, C + 1, 1)
            End If
        Next

        ID = sTmp
        'listinoddlDynamic-1
        Dim txt As TextBox = Wizard1.ActiveStep.FindControl("listinoddlDynamic-" & ID)
        Dim txt4 As TextBox = Wizard1.ActiveStep.FindControl("totaleddlDynamic-" & ID)


        Dim SQL As String = "Select BasePrice FROM MA_Items WHERE Item='" & ddl.SelectedValue & "'"
        Dim cmd As SqlCommand

        cmd = New SqlCommand(SQL, New SqlConnection(ConfigurationManager.ConnectionStrings("dbConnectionString").ToString))

        Try

            'APRE LA CONNESSIONE
            cmd.Connection.Open()
            'ESEGUE NLA QUERY, RESTITUISCE UN OGGETTO SqlDataReader

            Dim dr As SqlDataReader = (cmd.ExecuteReader(CommandBehavior.CloseConnection))

            If dr.HasRows Then
                'si sposta ciclicamente attraverso i record e visualizza i valori.
                Do While dr.Read
                    txt.Text = dr("BasePrice")
                Loop


            End If

            dr.Close()

        Catch ex As Exception
            FailureText.Text = ex.Message
            Exit Sub
        Finally
            cmd.Connection.Close()
        End Try


    End Sub

    Protected Sub OnTextChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim txt As TextBox = DirectCast(sender, TextBox)
        Dim ID As String = ""


        Dim C As Integer
        Dim sTmp As String = ""
        For C = 0 To Len(txt.ID)
            If IsNumeric(Mid(txt.ID, C + 1, 1)) Then
                sTmp = sTmp & Mid(txt.ID, C + 1, 1)
            End If
        Next

        ID = sTmp

        Dim txt1 As TextBox = Wizard1.ActiveStep.FindControl("listinoddlDynamic-" & ID)
        Dim txt2 As TextBox = Wizard1.ActiveStep.FindControl("qntddlDynamic-" & ID)
        Dim txt3 As TextBox = Wizard1.ActiveStep.FindControl("scontoddlDynamic-" & ID)
        Dim txt4 As TextBox = Wizard1.ActiveStep.FindControl("totaleddlDynamic-" & ID)

        Dim listino As Double
        Dim qnt As Double
        Dim sconto As Double

        If IsNumeric(txt1.Text) Then
            listino = txt1.Text
        Else
            listino = 0
        End If

        If IsNumeric(txt2.Text) Then
            qnt = txt2.Text
        Else
            qnt = 0
        End If

        If IsNumeric(txt3.Text) Then
            sconto = txt3.Text
        Else
            sconto = 0
        End If

        txt4.Text = listino * qnt - (((listino * qnt) / 100) * sconto)
    End Sub

    Sub GetFavoriteNumerOnActiveStepIndex(ByVal sender As Object, ByVal e As EventArgs)

        If Wizard1.ActiveStepIndex >= 1 Then


        End If

    End Sub
   

End Class