Question

Quelle est la différence de fonctionnalité entre

<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />

et

<input type="button" id="button1" runat="server" value="Click me" />

Est-ce que l'entrée avec attribut runat = « server » a d'autres propriétés ou limitées et méthodes?

Merci!

Était-ce utile?

La solution

Le premier crée un System.Web.UI.WebControls.Button tandis que le second crée un System.Web.UI.HtmlControls.HtmlInputButton.

sont deux contrôles serveur, mais les contrôles dans l'espace de noms WebControls a généralement un peu plus de fonctionnalités que les contrôles dans l'espace de noms HtmlControls. En général ils ont mis des données dans ViewState de garder une trace de leur état, et ils ont des événements postback côté serveur.

Chaque contrôle dans l'espace de noms HtmlControls correspondent exactement à un élément HTML, alors que les contrôles dans l'espace de noms WebControls peuvent être rendus différemment selon ce que le navigateur qui demande la page peut prendre en charge.

Autres conseils

Le bouton représenté par <asp:Button runat="server".../> sera converti en un contrôle serveur web avec un modèle riche en état et des propriétés différentes et des méthodes qui a une plus grande représentation claire dans le monde réel comme Button.Text = « Cliquez moi ».

Le bouton représenté par <input type="button" runat="server"..../> sera converti en contrôle serveur HTML représenté par HtmlInputButton; avec a des propriétés limitées, des méthodes et des événements. La plupart des propriétés ressemblent les équivalents html comme Button.Value = "Click Me".

Notez que les éléments d'une page de balisage sont pré-traitées / compilées avant d'être utilisées et sont converties en une représentation de classe où chaque élément est représenté par un contrôle. Vous pouvez accéder aux commandes côté serveur qui sont identifiés par le runat = tag « serveur » à partir du code derrière, car ils auront le contrôle du serveur correspondant correct (web / html), tout autre contenu statique incluant une balise <input type="button.../> avec le runat = "server "sera représenté comme LiteralControl.

La première ligne est ASP.NET, ce dernier XHTML simple.

L'ancien et interprété obtient parsé sur le côté serveur, après quoi le code HTML est généré, qui correspond à peu près à votre deuxième exemple. Le bouton ASP.NET est vraiment peu plus wrapper lumière sur e fonctionnalité du bouton d'entrée de HTML, et doit être utilisé chaque fois que vous avez besoin pour gérer l'événement Click du côté du serveur (ou dans le cas général des événements), et est généralement le moyen aller, puisque vous laisser abstrait ASP.NET l'idée d'un bouton sur votre page pour vous.

fonctionnalité des deux commandes est le même à la différence que la première est une commande de .net et deuxième est le contrôle HTML qui peut être faite en utilisant ServerControl

runat = "server".

et une première est riche en evants et metods THN le second ....

Il n'y a pas d'événement de serveur associé à un tel contrôle, mais vous pouvez l'utiliser dans codebehind pour changer ses propriétés.

Votre deuxième option ne sera pas probablement même travailler. runat = « server » sera rendu directement à la sortie HTML où il aura aucune fonctionnalité et ne casser la validation HTML.

entrée est un élément HTML qui ne possède que des propriétés HTML, et certainement aucune méthode d'aucune sorte.

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