DOBON.NET DOBON.NETプログラミング掲示板過去ログ

既存のHTMLタグをカスタマイズしたい

環境/言語:[【開発環境】VWD2005Express 【使用言語】VB.NET 【.NET Framework】 ver. 2.0.50727]
分類:[ASP.NET]

はじめまして。
ちょめぞうと申します。
いつもお世話になっております。

さっそく質問させていただきますが、
既存のHTMLタグをカスタマイズして、新しくカスタムタグ(カスタムコントロール)を作成したいと考えています。

具体的にやりたいことは、タグに新しい属性を追加したいのです。
たとえばDIVタグにMassage属性をつけて、

<MyTag:MyDiv Massage="ほげ">押したまえ</MyTag:MyDiv>

とすると、「押したまえ」をクリックした時に、"ほげ"がアラート表示する、、、などです。

新しくカスタムコントロールを作成して、属性を追加したいだけであれば、
Publicプロパティで属性を定義することと、
AddAttributesToRenderメソッドなんかを使えば、なんとかなることは
多分理解しています。
(全然ちげーよ!ってツッコミ期待、、、。)


問題となるのが

■ "既存のHTMLタグを"カスタマイズしたい
⇒そもそも可能なのか?
できないわけない、、、、と信じたい。

■ その際、既存のタグの属性すべてを、
Publicプロパティとして提供しなきゃいけないのか?
⇒めんどくさ過ぎ。

というところでコケています。
既存のタグが持っている属性は、そのまま生かしたい
ってのがミソなんですが、、、。

どなたかご教示いただけないでしょうか。
(あまり難しいとパンクしますが、、、。)
内容が解りづらく、乱筆で申し訳ございません。
よろしくお願い致します。
お世話になります。

■No17978に返信(ちょめぞうさんの記事)
こういうことでしょうか。
http://www.microsoft.com/japan/msdn/asp.net/tips/CustomControl/
なおこさん。
お返事有難う御座います!
なんとなく普段と違う掲示板に質問を書き込みしてみたのですが、
回答してくださる方は、やっぱりなおこさんだったりします(笑)

ご提示頂いたリンク先を確認しました。
ここで紹介されているカスタムタグは、要素を持たないコントロールですね。

    <カスタムタグ>要素</カスタムタグ>

カスタムタグで要素を挟みたい場合、継承するのは
System.Web.UI.WebControls.WebControlではなく、
System.Web.UI.Control
でなくてはいけなかったような。(違うのかも、、、。)

で、Controlを継承した場合、既存のタグを直接継承しているわけではないので
既存のタグが持っている属性は、そのまま生かして使うことが
当然できないわけです。

たとえばアンカータグをカスタマイズして作成したい場合、
Href属性などはそのまま使いたくても実装コードでは、
PublicのHrefプロパティとしてをコードをひとつひとつ、すべて記述しなくてはいけないのが面倒だと感じたわけです。

なにか良い方法はないでしょうか?
またみなさんはどう実装されているのでしょうか?
というのが質問内容だったのですが、うまくお伝えすることができず
申し訳御座いません。

ご教示よろしくお願い致します。

DOBON.NET | プログラミング道 | プログラミング掲示板