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