For each in table

lunedì 21 maggio 2007 - 21.16

sankyu Profilo | Senior Member

come si fa ad individuare dei controlli inseriti dinamicamente in una table?? vi posto il codice che inserisce i controlli poi lo pseudo codice di quello che vorrei fare ditemi voi!! io non ci sto capendo + niente!!

questo è quello che popola la table
For i As Int16 = 1 To ddlnumerocolli.SelectedValue
Try
Dim row As New HtmlTableRow
Dim cell As New HtmlTableCell
Dim txtdescr As New TextBox
Dim lbldescr As New Label
lbldescr.Text = "Collo " & i & " "
TBLDescrizioni.Rows.Add(row)
row.Cells.Add(cell)
Dim cell2 As New HtmlTableCell
row.Cells.Add(cell2)
TBLDescrizioni.Rows(i - 1).Cells(0).Controls.Add(lbldescr)
TBLDescrizioni.Rows(i - 1).Cells(1).Controls.Add(txtdescr)
Catch ex As Exception
Response.Write(ex)
End Try


Next

e questo è quello che vorrei ottenere:

For Each row As HtmlTableRow In TBLDescrizioni.Rows
For Each cel As HtmlTableCell In row.Cells
For Each txt As TextBox In cel.Controls
count = count + 1
cmd = New SqlCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "insert into descrizione_pacco values(@id_pacco,@n_collo,@descrizione)"
cmd.Parameters.Add(New SqlParameter("@id_pacco", pacco.id_pacco))
cmd.Parameters.Add(New SqlParameter("@n_collo", count))
cmd.Parameters.Add(New SqlParameter("@descrizione", txt.Text))
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Next

Next

Next

ma mi da il solito errore che una textbox non è un control, fin qui ci arrivo anchio ma allora come cavolo tolgo una textbox da un una collection di controlli??? help please!!!

Wamba Profilo | Expert

Così ad occhio ti direi,
For Each txt As TextBox In cel.Controls

diventa

dim txt as TextBox
For Each C As Control In cel.Controls

txt = tryCast(C, TextBox) ' Questa istruzione non funziona non mi ricordo la sintassi Vb

e poi usi txt
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

sankyu Profilo | Senior Member

e te pareva!! mi sembrava troppo bello se andava tutto ed invece
Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.TextBox'.

quindi non riesco ancora a fare il cast da control a textbox!!
---------------------------------------------------------------------------------
ore 23.15:
Illuminazione!!

ce l'ho fatta!! se a qualcuno può servire posto il codice!!

For Each ctr As Control In TBLDescrizioni.Controls
Dim Txt As System.Web.UI.WebControls.TextBox
If TypeOf (ctr) Is System.Web.UI.WebControls.TextBox Then
Txt = CType(ctr, TextBox)
end if
next

praticamente lo stronzone di .net definisce come controllo anche lo spazio vuoto nella cella e quindi sclera appena gli dici che lo spazio vuoto è una textbox e ha ragione!!!

bastava controllare se il controllo è di tipo textbox e in caso affermativo trasformarlo in textbox e poi farci quello che mi pare!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5