Ho una pagina che riempie una specie di listino generato dinamicamente in base ad un prezziario su dbase.
I controlli generati sono, ad esemnpio, dei TextBox con già preinserito il valore letto dal dbase, ma ci deve essere anche la possibilità di modificarlo.
Inoltre ci sono anche dei "Button" generati dinamicamente, l'ID gli è stato assegnato ed ho verificato che è corretto.
Ora, però, come posso usare questi controlli?
Se uso l'ID del controllo che io ho assegnato (ad esempio BA_R12) ho l'errore che il controllo non è stato dichiarato (se pure leggendo l'HTML della pagina vedo che esiste).
Quindi... come possono usare una funzione ButtonClick con questo bottone?
Leggendo il codice mi sembra che non ci sia differenza tra l'ID del bottone generato dinamnicamente e l'ID di un bottone piazzato all'interno del tag "form".
Spero di essermi spiegato...
Comunque il codice è il seguente...
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
TextBox2.Text = Now()
Dim connDB As OleDbConnection
connDB = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/Rubrica.mdb"))
connDB.Open()
Dim SQL As String = "SELECT * FROM Clienti ORDER BY Nome"
Dim CMD = New OleDbCommand(SQL, connDB)
Dim aReader = CMD.ExecuteReader()
While aReader.Read()
DropDownList1.Items.Add(aReader(1))
End While
aReader.Close()
connDB.Close()
DropDownList1.SelectedIndex = 0
connDB = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/Fiches.mdb"))
connDB.Open()
SQL = "SELECT * FROM Listino"
CMD = New OleDbCommand(SQL, connDB)
aReader = CMD.ExecuteReader()
Dim Prezzo() As Integer
Dim Descrizione() As String
Dim ArrCount As Integer
While aReader.Read()
ReDim Preserve Prezzo(ArrCount + 1)
ReDim Preserve Descrizione(ArrCount + 1)
Descrizione(ArrCount) = aReader(1)
Prezzo(ArrCount) = aReader(2)
ArrCount = ArrCount + 1
End While
aReader.Close()
connDB.Close()
Dim rows, cells, i, j As Integer
Dim b As Button
Dim l As Label
Dim Tb As TextBox
Dim Cb As CheckBox
Dim DDl As DropDownList
Dim RowHeader As String() = New String(8) {"", "", "", "", "Descrizione", "Prezzo", "*", "Operatore", ""}
Dim RowHeaderSpace As Integer() = New Integer(8) {10, 30, 30, 20, 120, 50, 30, 80, 10}
rows = 12
cells = RowHeader.Length - 1
For j = 1 To rows
Dim TableRow, r As New TableRow()
For i = 0 To cells
Dim Tablecell, c As New TableCell()
Select Case j
Case 0
l = New Label
l.Text = "<font color=blue>" & RowHeader(i) & "</font>"
c.Controls.Add(l)
c.Attributes.Add("align", "left")
c.Attributes.Add("width", RowHeaderSpace(i))
r.Cells.Add(c)
Case Else
c.Attributes.Add("width", RowHeaderSpace(i))
Select Case i
Case 0
l = New Label
l.Text = ""
c.Attributes.Add("align", "center")
c.Controls.Add(l)
c.Attributes.Add("style", "border-left: 1px solid black; background-color: #5b80cc")
Case 1
b = New Button
b.Text = "+"
b.ID = "BA_R" & j 'Assegno l'ID al controllo
c.Attributes.Add("align", "center")
c.Controls.Add(b)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 2
b = New Button
b.Text = "-"
b.ID = "BB_R" & j 'Assegno l'ID al controllo
c.Attributes.Add("align", "center")
c.Controls.Add(b)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 3
l = New Label
l.Text = ""
c.Attributes.Add("align", "center")
c.Controls.Add(l)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 4
l = New Label
l.Text = Descrizione(j - 1)
c.Attributes.Add("align", "left")
c.Controls.Add(l)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 5
Tb = New TextBox
Tb.Width = 30
Tb.Text = Prezzo(j - 1)
Tb.ID = "Tb_R" & j 'Assegno l'ID al controllo
c.Attributes.Add("align", "left")
c.Controls.Add(Tb)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 6
Cb = New CheckBox
Cb.ID = "Cb_R" & j 'Assegno l'ID al controllo
c.Attributes.Add("align", "left")
c.Controls.Add(Cb)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 7
DDl = New DropDownList
DDl.Items.Add("Clara")
DDl.Items.Add("Fabiana")
DDl.ID = "DDl_R" & j 'Assegno l'ID al controllo
c.Attributes.Add("align", "left")
c.Controls.Add(DDl)
c.Attributes.Add("style", "border-bottom: 3px solid #5b80cc; background-color: #8FB4FF")
Case 8
l = New Label
l.Text = ""
c.Attributes.Add("align", "center")
c.Controls.Add(l)
c.Attributes.Add("style", "border-right: 1px solid Black; background-color: #5b80cc")
End Select
End Select
r.Attributes.Add("height", "30")
r.Cells.Add(c)
Next i
Table1.Rows.Add(r)
Next j
Dim Tr As New TableRow()
Dim Tc As New TableCell()
Tc.Attributes.Add("style", "border-bottom: 1px solid black; border-left: 1px solid black; border-right: 1px solid black; background-color: #5b80cc")
Tc.ColumnSpan = 9
Tc.Attributes.Add("height", "10")
Tr.Cells.Add(Tc)
Table1.Rows.Add(Tr)
End Sub