- - PR -
DataGrid内のHTMLボタンのClickイベント取得について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-03 10:23
いつも参考にさせて頂いております。
Webアプリなんですが、DataGridのテンプレート列にHTMLコントロールのボタンを置いてます。 このボタンのClickイベントをサーバー側で取得したいのですがDataGridのItemCommandでも取得できません。 どうしたらClickイベントを取れるのでしょうか? すごく初歩的なことを聞いてしまって申し訳ないのですが、ご存知の方がおられましたらご教授お願いします。 | ||||||||||||
|
投稿日時: 2005-10-03 10:35
HTMLコントロールのボタンは、クライアントサイドでのみ動作するので、サーバサイドではイベントを拾えません。
通常であればButtonColumnを使用すると思われますが、何か使用できない理由等があるのでしょうか? ※とりあえず .NET TIPS[ASP.NET]DataGridコントロールの列にボタンを表示するには? | ||||||||||||
|
投稿日時: 2005-10-03 11:45
でっち6号さん返信ありがとうございます。
理由としては、Enterキーでカーソル移動の制御を行っているので、 Webコントロールを置くとEnterキー押下時にPostBackが走ってしまうのが嫌なんです。 例えばボタンのOnclik処理でサーバーサイドの処理を流すことは出来ないのでしょうか? | ||||||||||||
|
投稿日時: 2005-10-03 12:14
こんにちは。SE卵です。
> 理由としては、Enterキーでカーソル移動の制御を行っているので、 > Webコントロールを置くとEnterキー押下時にPostBackが走ってしまうのが嫌なんです。 > 例えばボタンのOnclik処理でサーバーサイドの処理を流すことは出来ないのでしょうか? HTMLコントロールでサーバーがわの処理を動かす。。。出来るのかな? それより逆の発想で、WEBコントロールのボタンを使用して、Enterキー押下時に ボタンの上でEnterキーを押下だったら、PostBackしないというようにしてやれば いいのでは?クライアント側で以下スクリプトで判断可能。
| ||||||||||||
|
投稿日時: 2005-10-03 12:14
ぼのぼのです。
一番簡単なのはButtonTypeをLinkButtonにすることでしょう。 他の方法として、Enterキーでカーソル移動の制御ってのは javascriptで行っているんだと思いますが、 そこでkeyCodeがEnterキーだったらreturn falseする、とか。 実は無理矢理HtmlButtonを使う方法もあるんですが、 上述の方法の方が簡単だと思いますよ ---- おっとかぶった(^^; >SE卵さん Enterキー押下でSubmitされるのが嫌って言ってるんで、 srcElementはボタンじゃなくてテキストボックスとかだと思います。 [ メッセージ編集済み 編集者: ぼのぼの 編集日時 2005-10-03 12:22 ] | ||||||||||||
|
投稿日時: 2005-10-03 12:34
HtmlButton.ServerClick はどうですか?
| ||||||||||||
|
投稿日時: 2005-10-03 13:36
SE卵さん。
ぼのぼのさん。 にしざきさん。 返信ありがとうございます。
ということですが、EnterキーでPostBackしないというようにしたいのは DataGrid以外のコントロールにカーソルが入ってる時なんですよ。 画面上にあるのはButtonとTextBoxとDropDownListです。
これは無理でした…。
もしよろしかったら上記の方法をご教授願えませんでしょうか? | ||||||||||||
|
投稿日時: 2005-10-03 14:05
個人的にあまり推奨できる方法ではないので先に別案を。 以下のようなjavascriptを試してみてください。
IE用のコードなので、Netscapeも対応する場合はもうひと工夫必要です。 そっちは、自分で調べてください。 |