- PR -

ASP.NETにおいて汎用的なAttribute["onclick"]の記述を実現するには?

1
投稿者投稿内容
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2003-11-02 12:41
いつも参考にさせてもらっています。
削除や、通常のHTMLでいえばSUBMITに相当する処理を行う場合、
ユーザーに念押しして実行するパターンもあるので、
従来のASPでは、
Response.Write "onclick=return confirm('削除してもよろしいですか?')"
などと記述して実現していました。
ASP.NETにおいて、同じ意図の処理は
例えば、あるWebコントロールボタンに対して
btn.Attributes["onclick"] =
   "return confirm('削除してもよろしいですか?')" ;
と記述すればやはり、OKです。

ここまでは何の問題もありませんし、動作しています。

さて、この処理内容を汎用的に関数化して、Web関係のコントロールに対して

private object AddLastConfirm( object obj )
{
  // オブジェクトに対して
//   Attributes["onclick"] =
//   "return confirm('削除してもよろしいですか?')" ;
// と同等のコードを記述する必要がある


   return obj;
}

------ 呼び出し側---------------------------------
AddLastConfirm(何らかのオブジェクトを示す変数)


としたとき、typeof やら GetTypeやらキャストやらやってみたのですが、
うまくいきません。まだ継承のさせかたや、
TypeConverterクラスなどが理解できていないせいなのですが、
ヒントをいただけないでしょうか。よろしくお願いします。

なお、AddLastConfirm 内では Debug.WriteLineで表示させたところ、
GetType().ToString()では元のオブジェクトの型は把握できていました。

このあたりをうまく使うのだとは思うのですが。。。。
Valhalla
ベテラン
会議室デビュー日: 2002/09/03
投稿数: 53
投稿日時: 2003-11-03 23:44
private void AddLastConfirm(WebControl wc)
{
wc.Attributes["onclick"] = "return confirm('OK')";
}

単純にこれでは?

呼び出し側は、AddLastConfirm(Button1)

はずしてたらすいません。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2003-11-05 13:23
ありがとうございました。
ちょっと挑戦してみます。結果をまた報告します。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2003-11-05 13:34
ありがとうございました。ご指導の方法でうまくいきました。
助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)