ASP.NET控件与HTML标签等效

我正在寻找一个备忘单,这将允许我显示一个HTMLdevise器的标准HTML标签等效的asp.net控件。 作为一个例子,<asp:Panel>将呈现为HTML <div>,而<asp:Label>将呈现为HTML <span>。 我一直在使用这个Google无效。 有人可以发布一个好的备忘单的链接,这样这个项目的devise者就可以更清楚地理解aspx页面上的标记。

为了清楚起见,我想要一个链接到主要的ASP.NET控件列表,并描述它们如何与标准的HTML相关联。 如果这是PDF格式或易于阅读和打印的网页,那将是非常好的。 我的理由是,我们有一个非常熟悉HTML的PHP​​开发人员来开发我们的项目,我觉得如果可以的话,更好地理解标准的ASP.NET服务器控件将是有用的递给他这样的“备忘单”。

我主要是指.NET 2.0框架,但我们也在3.0 / 3.5下工作。

这不是一个简单的问题,因为它取决于你正在讨论的.NEt版本和有时候的控制状态。 例如,1&1.1中的PANEL渲染为TABLE,而在后面的版本中则是DIV。

但总的来说(2/3),这里是:

  • 面板 – Div
  • Panel – GroupingText =“###”是Fieldset,Legend
  • 标签 – 跨度
  • button – input,typesbutton
  • 链接button – 与JS回发脚本的Href
  • 超链接 – 标准HREF
  • 图像button – input,types图像
  • 文本框 – 默认是input,input文本
  • 文本框 – 模式=密码是input,input密码
  • Textbox – Mode = Multiline是Textarea
  • DropDownList – select
  • 列表框 – select
  • RadioButton – input,收音机与GroupName
  • checkbox – input,checkbox
  • 中继器/列表视图 – 复杂。
  • Gridview – 表
  • 表 – 表
  • 文件 – input,types=文件

    这是基础知识。 更深奥的控制,如login控制是一个表格,其中有一系列的可能性。

斯蒂芬的名单是相当全面的。 我会添加下面的注释:

主要取决于已知的BrowserCaps 。

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

此外,控制适配器可以更改输出 – 例如CSS控制适配器将输出大多数表格控件(login,注册,中继器等)的样式的div。

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

这并不直接回答你的问题,但在很多情况下,你可以添加runat =“server”到一个普通的HTML标签,使ASP.Net知道它。 如果您希望能够dynamic更改页面,但是仍然允许devise人员对其进行处理,那么这可能会使devise人员更容易。

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

编辑:

有一件事我忘记了(正如steve_c指出的那样)是joinrunat =“server”会改变标签的ID,这可能有点痛苦。 如果您在CSS中使用了ID,那么您有点不幸,但在JavaScript中,您可以添加类似于<%= myDiv.ClientID%>的内容来获取由.Net生成的ID。

如果你需要渲染一个特定的标签,htmlgenericcontrol可能会有所帮助

 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); } }