web-dev-qa-db-ja.com

HTMLタグと同等のASP.NETコントロール

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でも作業を行っています。

59
stephenbayer

これは単純な質問ではありません。あなたが話している.NEtのバージョンや、時々コントロールの状態に依存するからです。たとえば、1および1.1のPANELはTABLEにレンダリングされますが、後のバージョンではDIVになります。

しかし、全体的に(2/3の場合)、次のようになります。

  • パネル-Div
  • パネル-GroupingText = "###"はフィールドセット、凡例
  • ラベル-スパン
  • ボタン-入力、タイプボタン
  • リンクボタン-JSポストバックスクリプト付きHref
  • ハイパーリンク-標準HREF
  • 画像ボタン-入力、画像の入力
  • テキストボックス-デフォルトは入力、テキスト入力
  • テキストボックス-モード=パスワードが入力されています。パスワードを入力します
  • テキストボックス-Mode = Multiline is Textarea
  • DropDownList-選択
  • リストボックス-選択
  • RadioButton-入力、GroupNameのラジオ
  • チェックボックス-入力、チェックボックス
  • リピーター/リストビュー-複雑。
  • Gridview-テーブル
  • テーブル-テーブル
  • ファイル-入力、Type = File

    それが基本です。 LOGINコントロールなどのより難解なコントロールは、オッズが多数あり、その中に終了するテーブルです。

101

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コントロールアダプターが組み込まれることが発表されていることに注意してください。

11

これはあなたの質問に直接答えるものではありませんが、多くの場合、通常の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を取得できます。

4
Matt Ephraim
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);
    }
}
0
Switch

特定のタグをレンダリングする必要がある場合、htmlgenericcontrolが役立つ場合があります

0
Element