59 votes

Équivalent du contrôle ASP.NET à la balise HTML

I'm looking for a cheat sheet that will allow me to show an HTML designer the equivalent asp.net controls for standard HTML tags. Par exemple, le <asp:Panel> sera rendu comme un <div> HTML et un <asp:Label> sera rendu comme un <span> HTML. J'ai cherché sur Google, sans succès. Quelqu'un peut-il poster un lien vers une bonne antisèche afin que les concepteurs de ce projet puissent comprendre plus clairement le balisage des pages aspx.

Pour être clair, j'aimerais avoir un lien vers une liste des principaux contrôles ASP.NET, avec une description de leur relation avec le HTML standard. Ce serait formidable si cette liste était au format PDF ou sur une page Web facile à lire et à imprimer. La raison, dans mon cas, est que nous avons un développeur PHP qui est très familier avec le HTML qui vient travailler sur notre projet, et je pense qu'il serait utile d'avoir une meilleure compréhension des contrôles de serveur ASP.NET standard si je pouvais lui remettre une telle "antisèche".

Je me réfère principalement au cadre .NET 2.0, mais nous travaillons également avec 3.0/3.5.

101voto

Stephen Wrighton Points 15904

Ce n'est pas une question simple, car cela dépend de la version de .NEt dont vous parlez et des états des contrôles parfois. Par exemple, le PANEL, dans les versions 1 et 1.1, est rendu sous forme de TABLE alors que dans les versions ultérieures, c'est un DIV.

Mais globalement (pour 2/3), voilà :

  • Panneau - Div

  • Panel -- GroupingText="###" is Fieldset, Legend

  • Label - Span

  • Bouton - Entrée, Type de bouton

  • Bouton de lien - Href avec JS Postback script

  • Hyperlien - HREF standard

  • Bouton Image - Entrée, Type Image

  • Textbox -- La valeur par défaut est Input, Type Text

  • Textbox -- Mode = Password is Input, tapez Password

  • Textbox -- Mode= Multiline is Textarea

  • DropDownList - Sélectionner

  • Boîte de liste - Sélectionner

  • RadioButton - Entrée, radio avec nom de groupe

  • Case à cocher - Entrée, Case à cocher

  • Répéteur/Visualisation de liste --Complexe.

  • Gridview - Tableau

  • Table - Table

  • Fichier - Entrée, Type=Fichier

    C'est l'essentiel. Les contrôles plus ésotériques, tels que le contrôle LOGIN, sont des tableaux contenant un certain nombre d'éléments divers.

11voto

Zhaph - Ben Duguid Points 18573

Stephen La liste de l'agence est assez complète. J'y ajouterais cependant les remarques suivantes :

Cela dépend surtout de ce que l'on sait BrowserCaps .

Un panneau 1.x sera rendu comme un div dans IE6+ - mais dans Firefox (ou d'autres navigateurs "DownStream" - considérés comme DownStream parce qu'il n'y avait pas de détails à ce sujet dans la Machine.Config par défaut), il sera rendu comme un tableau à cellule unique - cela pourrait être résolu en fournissant des BrowserCaps mis à jour pour Firefox/Opera/Safari/etc, soit dans la Machine.Config ou Web.Configs.

De même, les adaptateurs de contrôle peuvent modifier la sortie - par exemple, l'adaptateur de contrôle de l Adaptateurs de contrôle CSS produira des divs stylisés pour la plupart des contrôles tabulaires (connexion, enregistrement, répétiteurs, etc).

Notez qu'il a été annoncé à TechEd/PDC que les adaptateurs de contrôle CSS seront intégrés par défaut dans ASP.NET 4.0.

4voto

Matt Ephraim Points 1069

Cela ne répond pas directement à votre question, mais dans de nombreux cas, vous pouvez ajouter runat="server" à une balise HTML ordinaire pour qu'ASP.Net la reconnaisse. Cela peut faciliter la tâche du concepteur, si vous souhaitez modifier la page de manière dynamique tout en permettant au concepteur de travailler sur celle-ci.

<div id="myDiv" runat="server"></div>
<span id="mySpan" runat="server"></span>

Edit :

Une chose que j'ai oublié de mentionner (comme l'a fait remarquer steve_c) est que l'ajout de runat="server" modifiera l'ID de la balise, ce qui peut être un peu pénible. Vous n'avez pas de chance si vous utilisez l'ID dans votre CSS, mais dans votre JavaScript, vous pouvez ajouter quelque chose comme <%= myDiv.ClientID %> pour obtenir l'ID qui a été généré par .Net.

0voto

Element Points 2511

Htmlgenericcontrol peut vous aider si vous avez besoin de rendre une balise spécifique.

0voto

DeleteMyAccount Points 131
protected void CreateHeaders(List<Group_Info> group_Info)
{
    foreach (Group_Info gi in group_Info)
    {
        HtmlGenericControl groupContainer = new HtmlGenericControl("DIV");
        String lastLableID = "disp" + gi.GroupName.ToString().Replace(" ", "");
        groupContainer.ID = lastLableID;
        groupContainer.Attributes.Add("class", "content-groups");

        HtmlGenericControl groupTitle = new HtmlGenericControl("DIV");
        groupTitle.ID = lastLableID + "Sub1";
        if (gi.GroupName.Trim().Length == 0)
            groupTitle.Attributes.Add("class", "titlebar-hidden");
        else
        {
            groupTitle.Attributes.Add("class", "titlebar");
            groupTitle.InnerText = gi.GroupName.ToString().Trim();
        }

        groupContainer.Controls.Add(groupTitle);

        CreateFields(gi, ref groupContainer);

        this.pageContainer.Controls.Add(groupContainer);
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X