Question

ne pas avoir besoin d'utiliser runat="server" dans ASP.NET?

EDIT:. Merci pour toutes les réponses, mais je pensais vraiment de runat="server" intérieur d'une balise <asp:

Était-ce utile?

La solution

Utilisez l'attribut runat=server lorsque vous utilisez des contrôles ASP.NET, et / ou vous avez besoin d'un accès programmatique à ces contrôles dans votre code-behind.

contrôles HTML ne nécessitent pas cet attribut. Il est utile si vous avez un élément HTML comme <span> <div>, ou <table> lorsque vous voulez avoir la possibilité d'y accéder dans le code-behind.

<asp:Label runat="server" id="foo" />
<div runat="server" id="bar />
...
foo.Text = "Hello Label";
foo.Attributes["class"] = "baz";

Autres conseils

Vous devez utiliser runat="server" sur tout contrôle que vous souhaitez être analysé comme un contrôle serveur.

Tout élément avec runat="server" sera analysé dans un contrôle serveur dans la page herarchy. Tout le reste sera traité comme texte brut, et mis dans les contrôles de LiteralControl dans la hiérarchie page.

L'exception est des éléments qui ne sont pas des éléments réels, mais des balises spéciales dans une autre balise de serveur, par exemple des balises ContentTemplate. Ils ne ont pas besoin runat="server" parce que le contrôle contenant leur analyser.

Si vous ne voulez pas le côté serveur ASP.NET pour rendre une variable côté serveur contre nous.

Pour parler vous n'utilisez généralement pas quand vous n'avez pas besoin de manipuler l'élément DOM du côté serveur par exemple qui sont utilisés uniquement à des fins de mise en page.

Sans runat = « server » il n'y aurait pas d'autre moyen aussi d'effectuer des contrôles côté serveur contrôles html. Il ne ressemble une chose étrange, parce que vous ne pouvez pas faire runat = « client ».

Donc, en somme vous ne pouvez pas le laisser sur tous les contrôles ASP .Net jamais et il était probablement le plus propre et easiets façon de trouver tous les contrôles côté serveur pour les développeurs qui ont créé des formulaires ASP .Net Web.

source: http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/

Tag runat = « server » indique que le code contenu dans le bloc de script sera exécuté sur le serveur (et non sur le client). Lors de l'exécution, ASP.NET pour créer les objets côté serveur contenant ce code ainsi qu'une instance de la classe de page pour contenir les contrôles définis dans la page comme des instances de leur type donné (System.Web.UI.WebControls.Textbox, par exemple). Cet objet côté serveur sera appelé sur demande de l'utilisateur et exécuter du code en réponse à des événements.

Créer un contrôle dans Runtime

J'ai besoin d'une étiquette dans l'exécution que le temps ne ont pas besoin runat = « serveur » n'est pas nécessaire

Exemple

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
   {
    Label  lblNew = new Label();
    lblNew.ID ="lblnew";
    lblNew.Text ="Test";
    }
}

ce code créer l'étiquette dans l'exécution lors de l'événement de chargement de la page

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top