- PR -

HTMLコントロールからの値取得

1
投稿者投稿内容
yosi
会議室デビュー日: 2003/08/01
投稿数: 11
投稿日時: 2003-09-08 10:56
現在、テーブルを作るためにデザイン上、DataGridではなくliteralコントロールのTextに
HTMLタグを代入してテーブルを作成しています。
その中で、ボタンも同様に作成しているのですが、どのボタンが押されたかの判断値が取得
できずにいます。
またボタン数は固定ではないです。
判断は可能なのでしょうか?よろしくお願い致します。

○試した方法
各ボタンにonclickにて__doPostBackメソッドを記述したが、JavaScriptエラーとなる。
(id を分けてもaspx.cs側にて id_ServerClick(object sender, System.EventArgs e)
とボタンの数分、記述しないといけないので不可能??)
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-08 11:40
こんにちは。

どのボタンが押されたかという情報をサーバ側に渡したい、
・・・という事でいいのでしょうか?

古典的ですが以下のような感じで可能だと思います。
1.ボタン生成時にonclickを設定(サーバ側処理)
 <input type="button" name="btn" onclick="funcClick('x')">
 xは生成されたボタンの番号を順番に付ける(0〜)
 ループインデックスを使用するのがベター。
2.funcClick関数で取得した引数をパラメータとして自分を呼ぶ
 funcClick(i){
  window.location.href = "AAA(自ファイル名).aspx?BTN_INDEX=" + i;
 }
3.サーバ側で取得する
 Dim btnIndex As String
 btnIndex = Request.QueryString("BTN_INDEX")
yosi
会議室デビュー日: 2003/08/01
投稿数: 11
投稿日時: 2003-09-08 15:28
ご回答ありがとうございます。

回答が参考になりました。
onclickイベント時に独自のメソッドを呼び出して、そのメソッド内にて
HTMLのhidden項目に値代入しCS側にて(POST送信)
取得することにより解決できました。

今まではWebコントロールばかりを使用していたので気が付かなかったですが、
ASP.NETもASP同様の処理が可能なのですね。
勉強になりました。

1

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