Comment puis-je désactiver tous les contrôles dans ASP.NET la page?
J'ai plusieurs dropdownlist dans une page et souhaitez désactiver tous si l'utilisateur sélectionne une case à cocher qui se lit tout désactiver. Pour l'instant j'ai ce code et il ne fonctionne pas. Des suggestions?
foreach (Control c in this.Page.Controls)
{
if (c is DropDownList)
((DropDownList)(c)).Enabled = false;
}
Vous devez vous connecter pour publier un commentaire.
Chaque contrôle possède enfant de contrôle, de sorte que vous besoin d'utiliser la récursivité pour atteindre tous les:
Ensuite l'appeler de la sorte:
Je sais que c'est un vieux post, mais c'est de cette façon que je viens de résoudre ce problème. COMME l'indique le titre "Comment puis-je désactiver tous les contrôles dans ASP.NET la page?" J'ai utilisé la Réflexion pour y parvenir; il fonctionne sur tous les types de contrôle qui ont une propriété Enabled. Appelez simplement DisableControls passant dans le contrôle parent (I. e., Le formulaire).
C#:
VB:
Il serait plus facile si vous mettez tous les contrôles que vous souhaitez désactiver dans le panneau et puis il suffit d'activer/désactiver le panneau.
De mettre un panneau sur la partie de la page que vous souhaitez désactivé:
À l'intérieur de Page_Load:
... ou le C# équivalent. :o)
Je travaillais avec ASP.Net et les contrôles HTML j'ai aimé cette
appelle
Que vous avez à faire cette récursive, je veux dire, vous devez désactiver les contrôles enfants de commandes pour :
Voici un VB.NET la version qui prend également un paramètre facultatif de sorte qu'il peut être utilisé pour activer les commandes.
Privé Sous SetControls(ByVal parentControl Que le Contrôle, Optional ByVal activer as Boolean = False)
Je utiliser linq l'approche. Alors que l'aide de devExpress vous devez inclure
DevExpress.Web.ASPxEditors lib.
Si vous voulez vraiment désactiver tous contrôles sur une page, puis la façon la plus simple de faire cela est de définir la forme de l'Disabled à true la propriété.
ASPX:
Code-behind:
Mais bien sûr, ce sera également désactiver votre case, donc vous ne serez pas en mesure de cliquer sur la case à cocher pour activer de nouveau le contrôle.