ASP.NET控件与HTML标记等效

ASP.NET控件与HTML标记等效,asp.net,html,tags,servercontrols,Asp.net,Html,Tags,Servercontrols,我正在寻找一个备忘单,它允许我向HTML设计师展示标准HTML标记的等效asp.net控件。例如,将呈现为HTML,将呈现为HTML。我一直在谷歌上搜索,但没有用。有人可以发布一个链接到一个好的备忘单,以便这个项目的设计师可以更清楚地理解aspx页面上的标记 为了清楚起见,我想要一个指向主要ASP.NET控件列表的链接,并描述它们与标准HTML的关系。这将是伟大的,如果这是在PDF格式或在一个易于阅读和打印的网页。在我的例子中,原因是我们有一位非常熟悉HTML的PHP开发人员来参与我们的项目,我

我正在寻找一个备忘单,它允许我向HTML设计师展示标准HTML标记的等效asp.net控件。例如,将呈现为HTML,将呈现为HTML。我一直在谷歌上搜索,但没有用。有人可以发布一个链接到一个好的备忘单,以便这个项目的设计师可以更清楚地理解aspx页面上的标记

为了清楚起见,我想要一个指向主要ASP.NET控件列表的链接,并描述它们与标准HTML的关系。这将是伟大的,如果这是在PDF格式或在一个易于阅读和打印的网页。在我的例子中,原因是我们有一位非常熟悉HTML的PHP开发人员来参与我们的项目,我觉得如果我能给他这样一份“备忘单”,更好地理解标准ASP.NET服务器控件会很有用


我主要指的是.NET 2.0框架,但我们也在使用3.0/3.5。

这并不能直接回答您的问题,但在很多情况下,您可以将runat=“server”添加到常规HTML标记中,使ASP.NET了解它。如果您希望能够动态更改页面,但仍然允许设计器处理页面,那么这可能会使设计器的工作更轻松

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

编辑:


我忘记提到的一件事(正如steve_c所指出的)是,添加runat=“server”将更改标记的ID,这可能有点麻烦。如果你在CSS中使用ID,你会有点运气不好,但是在JavaScript中你可以添加一些东西,比如获取由.Net生成的ID

这不是一个简单的问题,因为它取决于您所谈论的.NEt版本以及控件的状态。例如,在1&1.1中,面板渲染为表,而在更高版本中,面板渲染为DIV

但总的来说(2/3),以下是:

  • 小组-分区

  • 面板--GroupingText=“####”是字段集,图例

  • 标签-跨度

  • 按钮-输入,键入按钮

  • 链接按钮-带有JS回发脚本的Href

  • 超链接-标准HREF

  • 图像按钮-输入,键入图像

  • Textbox——默认为输入,键入文本

  • Textbox--Mode=输入密码,键入密码

  • Textbox--Mode=多行为Textarea

  • 下拉列表-选择

  • 列表框-选择

  • RadioButton-输入,带GroupName的收音机

  • 复选框-输入,复选框

  • Repeater/Listview——复杂

  • Gridview-表格

  • 表-表

  • 文件-输入,类型=文件

    这是最基本的。更深奥的控件(如登录控件)是一个表,其中包含一堆零碎的东西


htmlgenericcontrol如果需要呈现特定的标记,可能会有所帮助。

的列表非常全面。不过,我想补充以下几点:

主要取决于已知的情况

1.x面板将在IE6+中呈现为div-但是在Firefox(或其他“下游”浏览器-被视为下游,因为默认情况下Machine.Config中没有它的详细信息)中,它将呈现为单个单元格表-这可以通过为Firefox/Opera/Safari/等提供更新的BrowserCaps来解决,在Machine.Config或Web.Configs中

此外,控件适配器可以更改输出-例如,大多数表格控件(登录、注册、中继器等)的输出样式为div

请注意,在TechEd/PDC上宣布ASP.NET 4.0将默认内置CSS控制适配器。

受保护的void CreateHeaders(列表组信息)
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);
    }
}
{ foreach(组信息中的组信息gi) { HtmlGenericControl groupContainer=新的HtmlGenericControl(“DIV”); 字符串lastLableID=“disp”+gi.GroupName.ToString().Replace(“,”); groupContainer.ID=lastLableID; 添加(“类”、“内容组”); HtmlGenericControl组标题=新的HtmlGenericControl(“DIV”); groupTitle.ID=lastLableID+“Sub1”; if(gi.GroupName.Trim().Length==0) 添加(“类”,“标题栏隐藏”); 其他的 { 添加(“类”、“标题栏”); groupTitle.InnerText=gi.GroupName.ToString().Trim(); } groupContainer.Controls.Add(groupTitle); CreateFields(gi,refgroupcontainer); this.pageContainer.Controls.Add(groupContainer); } }
+1,用于了解使用WebForms时实际生成的内容。请注意,LinkButton呈现一个锚元素(A),该元素在单击时回发。HyperLink元素更适合于常规锚元素(A)。Panel->div,有时table也适用于2.0downscaling@Crossbrowser-很好@安娜卡塔-我在建立名单时没有考虑缩小规模。只是一个概述ASP.NET控件“Label”输出一个,而不是一个标签。@birdus-我只在ASP:Label与输入控件关联时使用它,因此使用AssociatedControlId属性。设置为有效的输入控件后,ASP.Net标签会弹出一个Label元素。要添加Matt Ephraim所说的内容,您应该注意,如果该标记位于ASP.Net命名容器中,则通过添加runat=“server”ASP.Net可能会修改该标记的id属性。确实如此。我应该提到这一点。这是真的,您可以向几乎任何控件添加runat。这里我们已经使用asp.NET服务器控件创建了aspx页面。我们现在有一位来自PHP/HTML世界的新设计师在研究它,我希望让他更好地理解服务器控件。使用这个而不是实际的HTML标记的目的是什么?BrowserC