- PR -

AutoPostBackするコントロールの連続操作の無効化

1
投稿者投稿内容
ハヤ
常連さん
会議室デビュー日: 2003/06/04
投稿数: 41
投稿日時: 2003-09-12 17:30
C#でASP.NET WEBアプリケーションを作成しています。

ボタンの連打やAutoPostBackがtrueになっているコントロールの連続操作を無効化したいと考えています。
formタグのonsubmitで、Javascriptの関数をフックして、window.document.readyStateプロパティを
中で識別して、値がcompleteの時のみ、submitイベントを走らせる、といった形にしています。

FormタグのHTML
コード:
<form name="form1" method="post" action="hoge.aspx" language="javascript" onsubmit="return 
CheckBrauzerReadyState();" id="form1">



JavaScriptの記述
コード:
function CheckBrauzerReadyState()
{
  if(window.document.readyState != null && window.document.readyState != 'complete')
  {
    return false;		//処理続行NG
  }
  else
  {
    return true;		//処理続行OK
  }
}



この場合、submitボタンからの処理は連打が無効化する事ができるのですが、ボタン以外のAutoPostBackする
コントロールからは、連続操作が無効化できない、という現象にあたっています。
原因は自動生成される「__doPostBack」関数で、「document.Form1.submit();」でsubmit処理されますが、
JavaScriptでsubmitしている場合は、formタグのonsubmitイベントでは取得できない、という事です。

今、下の方向を模索しているのですが全然分かりません。
1.別の方法でJavaScriptのsubmit処理を取得する。
2.「__doPostBack」イベントを書き換える

1・2で分からなかったら3で対応しようと考えています。
3.AutoPostBackするコントロールの連続操作は全く別の方法で無効化する。

アドバイスを頂けたら幸いです。よろしくお願いします。
ハヤ
常連さん
会議室デビュー日: 2003/06/04
投稿数: 41
投稿日時: 2003-09-18 11:51
自己レスです。解決しました。ありがとうございます。

2の__doPostBack関数を書き換える事で無事、やりたい事ができるようになりました。
やす
会議室デビュー日: 2003/04/02
投稿数: 5
投稿日時: 2003-12-08 11:24
同じ問題で困っています。
もしよろしければ、どのような方法で解決したのかご教授ください。

よろしくお願いします。
みや
会議室デビュー日: 2004/09/07
投稿数: 1
投稿日時: 2004-09-07 18:28
同じ問題で悩んでいます。
どなたか、解決法をご存知でしたらご教示ください。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-09-08 11:07
引用:

2の__doPostBack関数を書き換える事で無事、やりたい事ができるようになりました。



同じくちょっと気になったので、探してみたのですが...
 Renderをオーバーライド
  http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=191690

もっと他に手法があるのかな!?
1

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