2012-03-23 36 views
0

私はかなり有線の問題に直面しています。処理時間の後のASP.NET応答

私はVisual Studio 2010でASP.NETを使用しています。ユーザーがボタンをクリックしたときに行う膨大な処理とネットワーク統合があります。要点は、応答には多くの時間(約1〜1.5分)がかかるということです。それまでは、私は患者に忍耐強く、ページを更新しないように伝えなければなりません。私はボタンの最初の行としてこれを試しました:

label.visible = true; //ラベルは、最初は不可視に設定されています。

NO LUCK !!!

次も試しました Response.Write( "alert( 'please patient' ')");

NO LUCK !!!

これらのステートメントは実行されません。彼らです!しかし、処理時間が終わった後で実際に行われます。すなわち、操作が完了した後、ユーザは忍耐強くなるように指示される。

私はautopostbackと呼ばれるいくつかの概念があることを知っていますが、私はラベルや命令のオートポストバックを可能にするメソッドを見つけることができません。誰も私の日を節約できますか?

答えて

1

おそらく、ユーザーがこのプロセスを開始した時点で実行されるクライアント上のJavaScriptを見る必要があります。もしあなたが通常のASPを介してプロセスを開始している(例えば):...その後何かのように入れてボタンを

<asp:Button runat="server" id="btnInitiate" OnClientClick="document.lblPleaseWait.style.display='';return true;" Text="Initiate"/> 
<asp:Label runat="server" id="lblPleaseWait" style="display:none;">Please Wait</asp:Label> 

私はjqueryのについて何も知らないが、私はそれはあなたを与えるだろうはるかに優れて信じるように導かよDOM内のラベルオブジェクトへのアクセス。

btnInitiateボタンを無効にして、繰り返しクリックするのを止めることもできます。このため、UseSubmitBehavior = "false"プロパティを調べる必要があります。

(また、「自動ポストバック」プロパティが間違っていると思います。つまり、コントロールが変更/クリックされたときなどは、 。サーバは、戻ってサーバからの応答とは何の関係もありません)

+0

あなたが正しいです。私はその概念が間違っている。私を修正してくれてありがとう..... – Kameron

+0

うまくいきました:)お返事ありがとうございました – Kameron

1

あなたがポストバックのパラダイムにいるのは、プロセスを起動してユーザーが最初の応答を1分後に取得するということです。とか、ぐらい。その間に、同じリクエストでユーザーに何も送信することはできません。 回避策は、ajaxを使用してイベントを発生させることができるため、イベントを非同期で発生させ、ユーザーに礼儀のメッセージを表示し、応答を待つことができます。

1

これはすべてあなたがしなければならないものです:。はjavascript関数、べきである)(

<asp:Button ID="btnClick" OnClientClick="showMessage()" runat="server" Text="Click" onclick="btnClick_Click" /> 
<span style="display:none;" id="lblMessage">Please be patient.</span> 

showMessageをlblMessageの表示スタイルを変更する:

<script type="text/javascript"> 
    function showMessage() { 
     document.getElementById('lblMessage').style.display = 'block'; 
    } 
</script> 

あるいは、その代わりスパンの、あなたはまた、ASP.Netラベルコントロールを使用することができますが、静的にそのClientIDModeに属性を設定する必要があります。

<style type="text/css"> 
.InvisibleStyle 
{ 
    display: none;  
} 
</style> 

<asp:Button ID="btnClick" OnClientClick="showMessage()" runat="server" Text="Click" onclick="btnClick_Click" /> 
<asp:Label ID="lblMessage" runat="server" Text="Please be patient." ClientIDMode="Static" CssClass="InvisibleStyle" ></asp:Label> 
+0

うまく働いています:)お返事ありがとう – Kameron

関連する問題