GRATUIT

Vos offres d'emploi informatique

Développeurs, chefs de projets, ingénieurs, informaticiens
Postez gratuitement vos offres d'emploi ici visibles par 4 000 000 de visiteurs uniques par mois

emploi.developpez.com

FAQ ASP.NET/VB.NETConsultez toutes les FAQ

Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireWebFormsContrôlesGénéral

Dans la procédure de création du bouton on ajoute :

 
Sélectionnez

AddHandler Bbouton.Click, AddressOf MesBoutons_Click
				



ensuite :

 
Sélectionnez

Sub MesBoutons_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
	'Récupération du bouton ayant déclenché l'événement 
	Dim Btn As Button 
	Btn = Ctype(sender,Button) 
	'Traitement 
	... 
End Sub
				



ATTENTION :Lors du postback éffectué aprés l'évènement, le bouton doit impérativement être rechargé dans la page pour que l'évènement soit traité. Quitte à mettre sa propriétée visible à false si vous ne voulez pas qu'il soit visible.

Créé le 6 novembre 2003  par Déclic

Quand on appuie sur la touche TAB du clavier, on fait défiler les différents éléments du formulaire en faisant changer le focus d'élément. Mais la plupart du temps, en aspx le défilement des WebControls ne se fait pas dans l'ordre souhaité.
Par défaut, le focus fait défiler les WebControls dans l'ordre dans lequel ils sont déclarés dans la page aspx.
Si vous voulez vous même choisir l'ordre de défilement de vos WebControls, il faut donner une valeur à la propriété "TabIndex" de votre WebControl. Par exemple un WebControl avec un TabIndex=1 sera selectionné au deuxième appui sur la touche TAB.

Créé le 12 octobre 2003  par David Pedehourcq

Il suffit de parcourir les fils d'un contrôle source récursivement.

 
Sélectionnez
 
Public Function RecursiveFindControl(ByVal controleSource As Control, ByVal idATrouver As String) As Control
	Dim control As Control = controleSource.FindControl(idATrouver)
	If Not control Is Nothing Then
		Return control
	End If
	Dim i As Integer
	For i = 0 To controleSource.Controls.Count - 1
		control = controleSource.Controls(i).FindControl(idATrouver)
		If control Is Nothing Then
			control = RecursiveFindControl(controleSource.Controls(i), idATrouver)
			If Not control Is Nothing And control.ID.ToLower() = idATrouver.ToLower() Then
				Return control
			End If
		Else
			Return control
		End If
	Next
	Return control
End Function

Attention, utiliser une telle fonction trop tôt peut appeler prématurément la méthode CreateChildControl sur le contrôle parcouru, ce qui peut avoir des effets indésirables.

Ci-dessous, vous trouverez sa version en itératif, qui améliore les performances :

 
Sélectionnez
 
Public Shared Function IterativeFindControl(ByVal controleSource As Control, ByVal idATrouver As String) As Control
	Dim control As Control = controleSource
	Dim queue As New Queue(Of Control)

	While Not control Is Nothing
		If String.Compare(control.ID, idATrouver, StringComparison.InvariantCultureIgnoreCase) = 0 Then
			Return control
		End If
		For Each ctrl As Control In control.Controls
			If String.Compare(ctrl.ID, idATrouver, StringComparison.InvariantCultureIgnoreCase) = 0 Then
				Return ctrl
			End If
			If ctrl.HasControls() Then
				queue.Enqueue(ctrl)
			End If
		Next
		control = queue.Dequeue()
	End While
	Return Nothing
End Function
Créé le 14 novembre 2007  par nico-pyright(c)

Nous allons ici utiliser un label, mais le code est valable pour les autres webcontrols.
Le piège dans cette question est que la propriété "font" du label est en lecture seule !!!

Il faut en fait passer par un style, un exemple :

 
Sélectionnez

Dim monstyle As New Style

monstyle.BorderColor = Color.Blue 
monstyle.BackColor = Color.Black
monstyle.ForeColor = Color.Blue
monstyle.Font.Name="Verdana"
monstyle.Font.Size=20

Lable1.ApplyStyle(monstyle)
				
Créé le 12 octobre 2003  par leduke

Par défaut, le webuser control a accès à la css de la page dans laquelle il est inclus. L'intérêt est que le webuser control s'adapte parfaitement aux différentes pages dans lesquelles il est placé.

Cependant, si vous souhaitez quand même lier une css "spécifique" à un webuser control, il vous suffit d'ajouter dans la css :

 
Sélectionnez

<LINK rel=stylesheet type="text/css" href="styles.css">
				

attention : si vous liez une css au webuser control faites attention d'utiliser des classes de css différentes que celles de la css des pages dans lesquelles vous allez inclure le webuser control.

Créé le 12 octobre 2003  par David Pedehourcq

Lien : Partie css de la FAQ html

Prenons un exemple concret pour illustrer cette réponse. Ainsi, imaginons que l'on utilise deux User Controls dans une WebPartZone:

 
Sélectionnez

<asp:WebPartZone ID="wpzGauche" runat="server" BorderColor="#CCCCCC" Font-Names="Verdana" Padding="6" Width="100%">
<ZoneTemplate>
    <uc1:searchResults ID="SearchResults1" runat="server" />
    <uc1:searchCriterias ID="SearchCriterias1" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>

Ensuite, il suffit d'ajouter un WebPartManager et de définir une connexion statique. Cette connexion prendra comme paramètres les ID du U.C. producteur et celui du consommateur. Ainsi, lors de l'envoi d'une information par le producteur, le consommateur est averti et peut utiliser cette même information.

 
Sélectionnez

<asp:WebPartManager ID="WebPartManager1" runat="server">
  <StaticConnections>
    <asp:WebPartConnection ID="connectionSearch"
      ConsumerID="SearchResults1" 
      ProviderID="SearchCriterias1" />
  </StaticConnections>  
</asp:WebPartManager>
Créé le 1er février 2006  par Didier Danse

Bien qu'il ne faut pas déclarer l'objet dans son code (je précise: "je n'utilise pas le code-behind"), la raison la plus probable est l'oubli du runat="server" dans la définition de l'objet dans votre page.

Créé le 3 octobre 2005  par Didier Danse

Lorsque l'on utilise la technique du Code-Behind, il faut lier les différents contrôles de la page .aspx avec le code.

Si une NullReferenceException est lancée, cela peut être dû à:
- les noms ne correspondent pas entre la page .aspx et le code-behind
- la variable dans le code est déclarée comme étant privée
- le contrôle n'a pas la propriété runat=server

Créé le 23 mai 2005  par Didier Danse
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.