62

我正在寻找一个备忘单,它可以让我向 HTML 设计师展示标准 HTML 标记的等效 asp.net 控件。例如,<asp:Panel> 将呈现为 HTML <div>,而 <asp:Label> 将呈现为 HTML <span>。我一直在谷歌搜索无济于事。有人可以发布一个好的备忘单的链接,以便该项目的设计人员可以更清楚地理解 aspx 页面上的标记。

为了清楚起见,我想要一个指向主要 ASP.NET 控件列表的链接,并说明它们与标准 HTML 的关系。如果这是 PDF 格式或易于阅读和打印的网页,那就太好了。就我而言,原因是我们有一个非常熟悉 HTML 的 PHP 开发人员来处理我们的项目,我觉得如果可以的话,更好地理解标准 ASP.NET 服务器控件会很有用递给他这样的“备忘单”。

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

4

5 回答 5

108

这不是一个简单的问题,因为它取决于您正在谈论的 .NET 版本以及有时控制的状态。例如,PANEL,在 1 和 1.1 中呈现为 TABLE,而在更高版本中,它是 DIV。

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

  • 面板 - 分区

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

  • 标签 - 跨度

  • 按钮 - 输入、类型按钮

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

  • 超链接 - 标准 HREF

  • 图像按钮 - 输入、输入图像

  • 文本框——默认为输入,输入文本

  • 文本框 -- 模式 = 密码为输入,输入密码

  • 文本框——模式=多行是文本区域

  • DropDownList - 选择

  • 列表框 - 选择

  • RadioButton - 输入,带有 GroupName 的 Radio

  • 复选框 - 输入,复选框

  • 中继器/列表视图——复杂。

  • Gridview - 表格

  • 表 - 表

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

    这就是基础。更深奥的控件(例如 LOGIN 控件)是一个表格,其中包含一堆赔率和结尾。

于 2009-01-20T16:20:56.533 回答
11

Stephen的清单非常全面。不过,我会在其中添加以下注释:

大多数情况下,它取决于已知的BrowserCaps

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

此外,控制适配器可以更改输出 - 例如,CSS 控制适配器将为大多数表格控件(登录、注册、转发器等)输出样式化的 div。

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

于 2009-01-20T16:50:27.287 回答
4

这不会直接回答您的问题,但在很多情况下,您可以将 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 中,您可以添加类似 <%= myDiv.ClientID %> 的内容来获取由 .Net 生成的 ID。

于 2009-01-20T16:06:28.187 回答
0

如果您需要呈现特定标签,htmlgenericcontrol 可能会有所帮助

于 2009-01-20T16:40:24.733 回答
0
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);
    }
}
于 2017-06-20T12:36:58.703 回答