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à:</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

Rispondi quotando