3.910 messaggi dal 28 gennaio 2003
Ciao.
Il tuo codice potrebbe essermi utile in altri contesti, perciò mi permetto di insistere.
L'istruzione:

Dim pageType = GetType(altra_pagina) va in errore
altra_pagina l'ho presa dall'altra pagina:
Partial Class altra_pagina etc. etc.
Nota che sto usando il "sito web" e non "applicazione web"

L'istruzine Dim radioButtonListNames = pageType.GetFields dà questo errore:
"Option strict On non consente l'associazione tartiva"

Per gli altri consigli certo che hai perfettamente ragione

ciao

Pietro
11.724 messaggi dal 09 febbraio 2002
Contributi

Dim pageType = GetType(altra_pagina) va in errore

Ok, proviamo in un altro modo.

Per prima cosa devi scoprire qual è il nome completo del tipo della pagina che contiene i RadioButtonList.
Quindi, vai in quella pagina e vedi cosa vale quest'espressione. Puoi usare il pannello Watch del debugger o fare un Response.Write.
Me.GetType().FullName


Supponiamo che il nome completo sia "ASP.pagina_aspx".

Poi, vai nella pagina che produce il report e ottieni il riferimento al tipo in questo modo:
Dim tipo As Type = Type.GetType("ASP.pagina_aspx")


E poi il resto del codice continua normalmente.

ciao,
Moreno

Enjoy learning and just keep making
3.910 messaggi dal 28 gennaio 2003
Ti ringrazio della pazienza!
Purtroppo non funziona ancora.
Per farla semplice mi metto nella stessa pagina.
Se uso questo codice classico, funziona:
For Each ctrl As Control In Me.Panel1.Controls
  If ctrl.GetType Is GetType(RadioButtonList) Then
    Dim c As RadioButtonList = DirectCast(ctrl, RadioButtonList)
    PrintLn(c.ID)
    For Each item As ListItem In c.Items
      PrintLn(String.Format("{0} = {1}", item.Text, item.Value))
    Next
    PrintLn()
  End If
Next


usando la reflection non riesco ad avere un risultato simile
questo il codice usato:
Dim tipo As Type = Type.GetType(Me.GetType().FullName)
Dim radioButtonListNames = tipo.GetFields(BindingFlags.NonPublic Or BindingFlags.Instance).Where(Function(t) t.FieldType = GetType(RadioButtonList)).[Select](Function(t) t.Name).ToList()
If radioButtonListNames.Count = 0 Then
  PrintLn("Nessun RadioButtonList trovato")
Else
  For Each s In radioButtonListNames
    PrintLn(s)
  Next
End If

Pietro
11.724 messaggi dal 09 febbraio 2002
Contributi
Te lo dicevo che era una soluzione fragile :)

Enjoy learning and just keep making
3.910 messaggi dal 28 gennaio 2003
Anche in questo avevi ragione!!!!!
Ciao

Pietro
11.724 messaggi dal 09 febbraio 2002
Contributi
Comunque, dato che ora sei riuscito a ottenere un riferimento al tipo, puoi crearti un'istanza di quella pagina con:
var page = Activator.CreateInstance(tipo) as Page;


E poi provi a enumerare la sua collezione Controls. Non so se funzionerà, potrebbe essere un vicolo cieco quindi non vorrei farti perdere altro tempo.

ciao,
Moreno

Enjoy learning and just keep making
3.910 messaggi dal 28 gennaio 2003
BrightSoul ha scritto:
Comunque, dato che ora sei riuscito a ottenere un riferimento al tipo, puoi crearti un'istanza di quella pagina con:
var page = Activator.CreateInstance(tipo) as Page;


E poi provi a enumerare la sua collezione Controls. Non so se funzionerà, potrebbe essere un vicolo cieco quindi non vorrei farti perdere altro tempo.

ciao,
Moreno


Ciao.
Solo per ringraziarti della pazienza

Pietro

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.