- PR -

デフォルトボタンについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-02-20 17:10
いつもお世話になっております。

複数のボタンがある画面にて、
エンターキーが押下された場合の挙動(押されるボタン)については
formのプロパティにあるdefaultbuttonで解決しましたが

そのボタンが画面を下にスクロールしないと見えない位置にある場合に
画面を呼び出すと画面位置がそのボタンが見える位置まで動いてしまいます。
Urlを【〜/test.aspx#】のように#をつけても先頭位置から表示されません。

解決方法など、何かご存知であれば助言お願いいたします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-02-20 18:01
引用:

未記入さんの書き込み (2007-02-20 17:10) より:
いつもお世話になっております。

複数のボタンがある画面にて、
エンターキーが押下された場合の挙動(押されるボタン)については
formのプロパティにあるdefaultbuttonで解決しましたが

そのボタンが画面を下にスクロールしないと見えない位置にある場合に
画面を呼び出すと画面位置がそのボタンが見える位置まで動いてしまいます。
Urlを【〜/test.aspx#】のように#をつけても先頭位置から表示されません。

解決方法など、何かご存知であれば助言お願いいたします。


ブラウザの仕様なんだからそれでいいんじゃないのって思うんだけど・・・
何がいけないんだろ?
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-02-20 18:51
引用:

ぶさいくろうさんの書き込み (2007-02-20 18:01) より:
ブラウザの仕様なんだからそれでいいんじゃないのって思うんだけど・・・
何がいけないんだろ?



ご返答有難う御座います。
例えば、このスレッドの内容画面を表示するときに
defaultbuttonに設定されたボタンが画面の一番下にあった場合、
ボタンにフォーカスが移ってしまうことでスクロールしてしまい
画面の一番上から表示できなくなってしまうということです。

今の対処方法は一番上にフォーカスセット用の
テキストボックスを配置しておいて
bodyのonloadイベントで
var objForm = document.getElementById("form1");
objForm.txtFocus.focus();
objForm.txtFocus.style.display = "none";
のようにして対処しています。
ただこの方法だと画面が表示される一瞬ですが、テキストが表示されてしまい
気になってしまいます。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-02-20 19:16
引用:
画面を呼び出すと画面位置がそのボタンが見える位置まで動いてしまいます。

WebForm_AutoFocus('Button1');
みたいなjavascriptが生成されるからです。これが書かれないdefaultbutton機能を自作しては
どうでしょうか
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-02-20 19:44
引用:

べるさんの書き込み (2007-02-20 19:16) より:
WebForm_AutoFocus('Button1');
みたいなjavascriptが生成されるからです。これが書かれないdefaultbutton機能を自作しては
どうでしょうか



ということはdefaultbuttonの仕様のようですね。
ご返答有難う御座いました。
自作する方向で考えてみようと思います。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2007-02-20 22:02
JavaScriptが有効であることが前提で良いのなら、
DefaultButtonプロパティを空にして、
デフォルトボタンにしたいボタン以外のすべてのボタンの
UseSubmitBehaviorプロパティをFalseにする、という方法はどうでせう?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-02-21 05:49
PanelのDefaultButtonを使用する方法とJavaScritを使用する
方法があります。

単純な場合は、PanelでOKかと。

ボタンが複数あるときはJavaScriptで実装したらどうでしょうか。

この場合、TextBoxのonKeyPressにJavaScriptを登録します。

ソースコードは以下のサンプルを参照してください。

[Enter]キーを押したときのデフォルトボタンを設定(JavaScript版/Panel版)
http://www.gxbrbwda.sv02.fsdotnet.net/Goto.aspx?id=070220CS-1
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
1

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