3

ボタンがあります

   <UpdatePanel>
         <asp:Button CssClass="btn-send" runat="server"
              OnClick="SendMessage" Text="Send" />
    </UpdatePanel>

サーバー側の方法

protected void SendMessage(object sender, EventArgs e){...}

POST の前に少し遅延させて進行状況バーのアニメーションを表示する必要があります。これにはjavascript(jquery)を使用したいと思います。

この遅延送信を行う方法
1) サーバー遅延
なし 2) サーバー ボタンをクリックするクライアント スクリプトを使用した 2 番目のボタンなし

4

4 に答える 4

2

あなたはこのようなことを試すことができます...

<asp:Button runat="server" OnClick="SendMessage" Text="Send"
   OnClientClick="return sendMessage(this);" />

<script type="text/javascript">
  var sendBtn = null;
  function sendMessage(btn){
    if(sendBtn==null){
      sendBtn = btn;
      window.setTimeout(function(){ sendBtn.click(); }, 1000);
      // DO YOUR VISUAL STUFF HERE
      return false;
    }else{
      return true;
    }
  }
</script>

ボタンをクリックすると、最初にボタン オブジェクトが保存され、ボタンをクリックするためのタイムアウトが設定されてから、実行したい視覚的な処理が実行されます。

次に、1 秒後、ボタンが再度クリックされます (今回はタイムアウト セクションは実行されません)。

(私はまだjqueryを学ぶ時間がありませんでしたが、それを使ってこれを行う簡単な方法があると確信しています)

于 2012-07-24T13:20:55.513 に答える
1

通常の Javascript setTimeoutを使用するだけで、jQuery を使用せずにこれを行うことができます。

于 2012-07-24T13:03:14.100 に答える
0

Event.preventDefault()クリック時にページが送信されないようにするには、送信ボタンのクリック時に使用する必要があります。次に、進行状況のアニメーションを開始し、完了したら、js からフォーム送信を呼び出します。

$("form").submit(function(e){
  var form = this;
  e.preventDefault();
  function animation(total,callback){
    //perform your animation
    callback();
  };

  animation(100,function(){
    form.submit();
  });
});
于 2012-07-24T13:35:44.877 に答える
0

フォームをキャプチャして、onsubmit送信したとき (ボタンが押されたとき) に、ページの待機メッセージを開きます。したがって、この行を Page_Load() に追加します

Page.Form.Attributes["onsubmit"] = "return AllowFormToRun();";

そしてJavaScript:

<script>
    function AllowFormToRun()
    {
        setTimeout(OpenWaitMsg, 10);
        return true; 
    }

    function OpenWaitMsg()
    {
        // open here the wait div 
    }
</script>
于 2012-07-24T13:14:05.273 に答える