HTMLデザイナーに標準のHTMLタグに相当するasp.netコントロールを表示できるチートシートを探しています。例として、<asp:Panel>はHTML <div>としてレンダリングされ、<asp:Label>はHTML <span>としてレンダリングされます。私はこれを無駄にグーグルで探してきました。このプロジェクトの設計者がaspxページのマークアップをより明確に理解できるように、誰かが適切な虎の巻へのリンクを投稿できますか。
明確にするために、主要なASP.NETコントロールのリストへのリンクと、それらが標準HTMLにどのように関連するかについての説明が必要です。これがPDF形式であるか、読みやすく印刷しやすいWebページ上にある場合、素晴らしいと思います。私の場合は、PHP HTMLに非常に精通している開発者がプロジェクトに取り組むようになりました。標準のASP.NETサーバーコントロールの理解を深めることは、彼にそのような「チートシート」を渡すことができれば便利だと思います。
主に.NET 2.0フレームワークに言及していますが、3.0/3.5でも作業を行っています。
これは単純な質問ではありません。あなたが話している.NEtのバージョンや、時々コントロールの状態に依存するからです。たとえば、1および1.1のPANELはTABLEにレンダリングされますが、後のバージョンではDIVになります。
しかし、全体的に(2/3の場合)、次のようになります。
ファイル-入力、Type = File
それが基本です。 LOGINコントロールなどのより難解なコントロールは、オッズが多数あり、その中に終了するテーブルです。
Stephen のリストはかなり包括的なものです。ただし、次のメモを追加します。
ほとんどの場合、既知の BrowserCaps に依存します。
1.xパネルはIE6 +でdivとして表示されます-ただし、Firefox(または他の「ダウンストリーム」ブラウザ-デフォルトではMachine.Configに詳細がなかったためDownStreamと見なされます)は単一のセルテーブルとして表示されます-これは、Machine.ConfigまたはWeb.ConfigsでFirefox/Opera/Safari/etcの更新されたBrowserCapsを提供することで解決できます。
また、コントロールアダプターは出力を変更できます。たとえば、 CSSコントロールアダプター は、ほとんどの表形式コントロール(ログイン、登録、リピーターなど)のスタイル付きdivを出力します。
TechEd/PDCで、ASP.NET 4.0にはデフォルトでCSSコントロールアダプターが組み込まれることが発表されていることに注意してください。
これはあなたの質問に直接答えるものではありませんが、多くの場合、通常のHTMLタグにrunat = "server"を追加してASP.Netに認識させることができます。ページを動的に変更したいが、それでもデザイナーが作業できるようにしたい場合、デザイナーにとって物事が簡単になるかもしれません。
<div id="myDiv" runat="server"></div>
<span id="mySpan" runat="server"></span>
編集:
(steve_cが指摘したように)言及し忘れたことの1つは、runat = "server"を追加するとタグのIDが変更されることです。これは少し面倒な場合があります。 CSSでIDを使用している場合はちょっと運が悪いのですが、JavaScriptで<%= myDiv.ClientID%>のようなものを追加して、.Netによって生成されたIDを取得できます。
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);
}
}
特定のタグをレンダリングする必要がある場合、htmlgenericcontrolが役立つ場合があります