[VB.NET] lister les contrôles de mon formulaire web

lister les contrôles de mon formulaire web [VB.NET] - C#/.NET managed - Programmation

Marsh Posté le 04-04-2005 à 15:16:17    

Salut,
 
Je cherche désespérément le moyen de lister tous les contrôles web de mon formulaire. Je bloc car je n'arrive qu'à obtenir 3 contrôles. Le but étant de tous les mettre en readonly ou non selon un paramètre.
Savez-vous comment je pourrais fait, s'il vous plaît?
 
Merci par avance.

Reply

Marsh Posté le 04-04-2005 à 15:16:17   

Reply

Marsh Posté le 06-04-2005 à 16:02:55    

franculo_caoulene a écrit :

Salut,
 
Je cherche désespérément le moyen de lister tous les contrôles web de mon formulaire. Je bloc car je n'arrive qu'à obtenir 3 contrôles. Le but étant de tous les mettre en readonly ou non selon un paramètre.
Savez-vous comment je pourrais fait, s'il vous plaît?
 
Merci par avance.


 
tu colles tous les elements que tu veux modifier de maniere identique dans un groupbox et ensuite tu fais ca :
 

Code :
  1. foreach(Control ctr in groupBox1.Controls) ctr.Enabled = false;


 
 
(code en C#, desolé je ne connais pas et ne m'interresse pas a VB, tu auras aucun mal a transcrire)
 
Ca desactive tous les controls contenus dans le groupBox1


Message édité par liink le 06-04-2005 à 16:07:46
Reply

Marsh Posté le 07-04-2005 à 12:10:14    

En VB, ça donnera :

For Each Ctr As Control In groupBox1.Controls
 
  Ctr.Enabled = False
 
Next

Reply

Marsh Posté le 03-11-2005 à 09:49:50    

Les groupbox n'existent pas en ASP.net et donc il ne peut pas l'utiliser pour lister tous ses controles webs de son formulaire. Je tombe moi aussi sur le meme problème et pour le moment je n'ai pas réussi à le résoudre.

Reply

Marsh Posté le 03-11-2005 à 09:59:05    

Si quelqu'un a une idée qu'il l'a partage. J'ai écumé tout le net la sans rien trouvé :(

Reply

Marsh Posté le 03-11-2005 à 19:07:33    

Tous  les controls ont une propriété Controls qui est récursive.
Y'a juste une piège : en ASP.Net, y'a deux types de controles.
- les WebControls : controles ASP.Net, qui ont une propriété 'Enabled'
- les HtmlControls : controls Html de base, qui ont une propriété 'Disabled'
 
Pour les mettre tous en lecture seule, tu fais une méthode récursive et c'est marre. Je te la fais en C# (je parle pas VB)

Code :
  1. public void SetAllControlsEnabling(bool enabled, ControlCollection col)
  2. {
  3. // tu boucles sur ta collection de controles
  4. foreach(Control ctrl in col)
  5. {
  6.  // si c'est un WebControl
  7.  WebControl web = (ctrl as WebControl);
  8.  if(web != null)
  9.   // changer 'enabled'
  10.   web.Enabled = enabled;
  11.  // si c'est un HtmlControl
  12.  HtmlControl html = (ctrl as HtmlControl);
  13.  if(html != null)
  14.   // changer 'disabled'
  15.   html.Disabled = !enabled;
  16.  // la condition d'arrêt
  17.  if(ctrl.Controls != null)
  18.   // l'appel récursif
  19.   SetAllControlsReadonly(ctrl.Controls);
  20. }

Reply

Marsh Posté le 04-11-2005 à 11:45:25    

super _mose_ ca marche. J'avais tenté le foreach mais sans récursiver. Tu m'aides trop la c'est super. Un grand merci a toi!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed