2010-05-18 5 views
0

Dans la page ASPX, j'utilise un contrôle utilisateur qui contient un bouton. J'ai besoin de cacher le bouton (qui est dans le contrôle de l'utilisateur) quand une case à cocher (dans aspx) est clikced. J'ai une publication pour la case à cocher. Je veux cacher le bouton lorsque la case est cochée. Dans quel cas devrais-je faire la dissimulation et la dissimulation?Événement ASP.NET pour le contrôle utilisateur

Je ne peux pas ajouter la propriété supplémentaire dans le contrôle de l'utilisateur. Est-il possible d'accéder au bouton à l'aide de FindControl et de le désactiver? Quel événement peut être utilisé pour cela?

S'il vous plaît aider

Merci

Lijo

Répondre

0

Vous feriez la cachette dans la case à cocher événement clicked .....

Votre question est comment vous obtenez la page ASPX pour parler à toi ascx?

exposer une méthode publique dans votre ascx et l'appeler de votre ASPX onSelectChanged pour votre Checkbox

0
protected void myCheckBox_CheckedChanged(object sender, EventArgs e) 
    { 
     ucMyControl.ButtonVisible = ((CheckBox)sender).Checked; 
    } 

et dans votre contrôle utilisateur définit:

public bool ButtonVisible 
    { 
     set { myButton.Visible = value; } 
    } 
+0

Il ne devrait pas être problème s'il a la propriété Visible – UserControl

+0

Je ne peux pas ajouter de propriété supplémentaire dans le contrôle utilisateur. Est-il possible d'accéder au bouton à l'aide de FindControl et de le désactiver? Quel événement peut être utilisé pour cela? – Lijo

+0

Eh bien, c'est possible si vous avez au moins une référence au contrôle de l'utilisateur et connaissez l'ID du bouton. Vous devez faire FindControl() récursivement sur la collection ucMyControl.Controls. Consultez cet article pour l'algorithme: http://stevesmithblog.com/blog/recursive-findcontrol/ – UserControl

0

Êtes-vous autorisé à modifier le contrôle de l'utilisateur du tout? La meilleure solution est certainement d'exposer une propriété publique ou une méthode sur le contrôle utilisateur, puis de faire en sorte que l'événement clickbox de la page communique avec le contrôle utilisateur via la propriété ou méthode personnalisée.

FindControl peut fonctionner, mais vous violez le concept d'encapsulation si la page connaît l'ID du bouton qui est sous le contrôle de l'utilisateur et ne devrait pas le faire à mon humble avis ...

Questions connexes