24 messaggi dal 22 maggio 2007
Innanzitutto un grazie a tutti.
Mi spiego meglio dal DB prelevo dai campi, i nomi dei controlli DropDownList che sono sulla pagina.
In una sub quindi ho i nomi delle DDL e se devono essere visibili, ma vorrei utilizzarli per passarli al controllo.
Come si fà?
Vi posto quello che pensavo di fare...

Protected Sub Gestione_DDL_DB(ByVal Indice_DDL_Moduli As Integer)   
    Dim ds As DataSet = ExecuteSQL_to_Dataset("SELECT * FROM Modulo WHERE ID=" & Indice_DDL_Moduli)   
    Dim x As Integer, check As Boolean, DDL As DropDownList   
        For x = 0 To ds.Tables(0).Columns.Count - 1   
            'leggo dal DB la visibilità del controllo               
            If ds.Tables(0).Rows(0)(x) = True Then   
                'leggo il nome del controllo   
                DDL = ds.Tables(0).Columns(x).ColumnName   
                --------------- 
                ddl.visibile=true  
   
            Else   
                ddl.visibile=false
            End If   
        Next x   
    End Sub
mm, non ho capito benissimo, comunque se vuoi cercare il controllo dato il nome, usa la funzione FindControl

Ciao

Il mio blog
Homepage
24 messaggi dal 22 maggio 2007
Hai ragione scusami, non pensavo fosse cosi semplice, ma comunque non riesco a trovare il controllo.
Non è nidificato perchè se digito il nome DDL_P l'intellisense mi espone i metodi.
Hai qualche consiglio il perchè non riesco a trovarlo?
Ho scritto così:
 
Dim DDL As DropDownList = DirectCast(FindControl(dsDDL.Tables(0).Columns(x).ColumnName), DropDownList) 
If dsDDL.Tables(0).Rows(0)(x) = True Then 
    DDL.Visible = True 
Else 
    DDL.Visible = False 
End If 


Ti garantisco che il nome è esatto anche passandogli direttamente il nome in stringa.
Grazie
179 messaggi dal 12 luglio 2007
Ma vuoi inserire un controllo in una pagina o nasconderne uno data una lista da db?
24 messaggi dal 22 maggio 2007
Ho risolto grazie ad un findcontrol ricorsiva e cosi ho scoperto che ho utilizzato un panel e il classico findcontrol non basta.
Vi posto il codice:
Private Shared Function FindControlRecursive(ByVal Root As Control, ByVal Id As String) As Control
        If Root.ID = Id Then
            Return Root
        End If
        For Each Ctl As Control In Root.Controls
            Dim FoundCtl As Control = FindControlRecursive(Ctl, Id)
            If FoundCtl IsNot Nothing Then
                Return FoundCtl
            End If
        Next
        Return Nothing
End Function


Grazie a tutti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.