【发布时间】:2010-10-02 11:48:23
【问题描述】:
我正在寻找一个备忘单,它可以让我向 HTML 设计人员展示标准 HTML 标记的等效 asp.net 控件。例如, 【问题讨论】:
标签: asp.net html tags servercontrols
我正在寻找一个备忘单,它可以让我向 HTML 设计人员展示标准 HTML 标记的等效 asp.net 控件。例如, 【问题讨论】:
标签: asp.net html tags servercontrols
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);
}
}
【讨论】:
Stephen 的列表非常全面。不过,我会在其中添加以下注释:
主要取决于已知的BrowserCaps。
1.x 面板将在 IE6+ 中呈现为 div - 但是在 Firefox(或其他“DownStream”浏览器 - 被视为 DownStream,因为默认情况下 Machine.Config 中没有它的详细信息)它将呈现为单个单元格表 - 这可以通过在 Machine.Config 或 Web.Configs 中为 Firefox/Opera/Safari/etc 提供更新的 BrowserCaps 来解决。
此外,控件适配器可以更改输出 - 例如,CSS Control Adapters 将为大多数表格控件(登录、注册、转发器等)输出样式化的 div。
请注意,在 TechEd/PDC 上宣布 ASP.NET 4.0 将默认内置 CSS 控制适配器。
【讨论】:
这不是一个简单的问题,因为它取决于您所谈论的 .NET 版本以及有时控制的状态。例如,PANEL 在 1 和 1.1 中呈现为 TABLE,而在更高版本中它是 DIV。
但总的来说(2/3),这里是:
面板 - 分区
面板 -- GroupingText="###" 是字段集,图例
标签 - 跨度
按钮 - 输入、键入按钮
链接按钮 - 带有 JS 回发脚本的 Href
超链接 - 标准 HREF
图像按钮 - 输入,输入图像
文本框 -- 默认为输入,输入文本
文本框 -- 模式 = 密码为输入,输入密码
Textbox -- Mode= Multiline is Textarea
DropDownList - 选择
列表框 - 选择
RadioButton - 输入,带有 GroupName 的 Radio
复选框 - 输入,复选框
Repeater/Listview --Complex.
Gridview - 表格
表格 - 表格
文件 - 输入,类型=文件
这就是基础。更深奥的控件(例如 LOGIN 控件)是一个表格,其中包含一堆赔率和结尾。
【讨论】:
这并不能直接回答您的问题,但在很多情况下,您可以将 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。
【讨论】:
如果您需要呈现特定标签,htmlgenericcontrol 可能会有所帮助
【讨论】: