IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/VB.NET

logo
Sommaire > Les webforms > Divers
        Comment modifier l'ordre de défilement des webcontrols quand on appuis sur la touche TAB ?
        Comment mettre des balises asp.NET en commentaire?
        Qu'est ce que le viewstate et à quoi sert-il?
        Peut-on avoir plusieurs formulaires avec runat=server dans une même page?
        Comment trouver un contrôle dans une page récursivement ?
        Quel composant utiliser pour l'envoi d'un fichier vers un serveur?
        A quoi sert AutoEventWireup ?
        Comment écrire de gauche à droite dans un Label?



Comment modifier l'ordre de défilement des webcontrols quand on appuis sur la touche TAB ?
auteur : David Pedehourcq
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.


Comment mettre des balises asp.NET en commentaire?
auteur : Didier Danse
Lorsque l'on utilise <!-- -->, la page envoyée au client contient les commentaires et tout ce qui se trouve entre les deux. Pour éviter d'envoyer une partie de la page, il suffit d'utiliser <%-- --%> Dans ce cas, tout ce qui se trouve entre ces balises ne sera pas pris en compte par le serveur.


Qu'est ce que le viewstate et à quoi sert-il?
auteur : Didier Danse
Ce champ caché permet, lors du renvoi de la page au serveur, de ne pas perdre les données des différents composants. Ainsi, la page ne doit être initialisée qu'une seule fois.

Ce champ peut prendre plusieurs Ko. C'est pourquoi il est important de ne l'utiliser que si nécessaire.

L'utilisation du ViewState n'est ainsi pas nécessaire pour des pages consultatives.

Il est ainsi possible de le désactiver dans chacun des composants qu'il n'est pas nécessaire d'activer la persistance, en affectant la valeur False à la propriété EnableViewState:

					<asp:composant ... EnableViewState="False"></asp:composant>
				
lien : fr Introduction à asp.NET: architecture et syntaxe

Peut-on avoir plusieurs formulaires avec runat=server dans une même page?
auteur : Didier Danse
Non (une réponse plus simple c'est dur ;))


Comment trouver un contrôle dans une page récursivement ?
auteur : nico-pyright(c)
Il suffit de parcourir les fils d'un contrôle source récursivement.

					 
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.


Quel composant utiliser pour l'envoi d'un fichier vers un serveur?
auteur : Didier Danse
En ASP.NET 1.x il n'en existe pas d'autre que le contrôle html, à savoir l'input de type file (<input type="file">).

En ASP.NET 2.0, il existe un contrôle asp.net nommé FileUpload. Il comporte quelques propriétés et méthodes ne se trouvant pas dans le contrôle html.


A quoi sert AutoEventWireup ?
auteur : nico-pyright(c)
Si l'on définit dans sa page aspx AutoEventWireup à True

					
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

				
on force un mapping de certains événements de la page. Ainsi par exemple, la méthode Page_Load sera appelée après la méthode OnLoad.
Ce mapping est un confort d'utilisation pour éviter d'avoir à surcharger les méthodes de la page ; mais c'est aussi une hérésie en termes de performances. Le framework va user de reflexions et de délégates simplement pour nous éviter une surcharge.
Préferez sans hésiter les surcharges et mettez la propriété AutoEventWireup à false;

					<%@ Page Language="C#" AutoEventWireup="fase" CodeFile="Default.aspx.cs" Inherits="Default" %>
		
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
	' je fais qqchose
	MyBase.OnLoad(e)
End Sub
				
au lieu de :

					<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	' je fais qqchose
End Sub
				

Comment écrire de gauche à droite dans un Label?
auteurs : Didier Danse, Ludovic Lefort
En modifiant l'attribut Style:

					
<asp:Label id="label" style="writing-mode:tb-rl" runat="server">Texte à afficher</asp:Label>

				
On peut également passer par une propriété CSS :

					.RightToLeft
{
    direction: rtl;
} 

				
Et ensuite l'attacher à la textbox :

					<asp:TextBox runat="server" ID="TestTxtBox" CssClass="righttoleft" /> 

				


Consultez les autres F.A.Q's


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 ni 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.