2010-12-29 29 views
0

非同期のデリゲートコールからロケーション日時が取得されています。私はそのデリゲートメソッドによって返された日付値にlable値を設定したいと思います。しかし、問題は、非同期メソッドが完了する前にレンダリングされていることです。非常に遅いサードパーティサービスを使用するため、この非同期メソッドを待つことはできません。だから私は非同期コールバック関数とinside that call back function I want to run a javascript script functionを実装しました。しかし、問題はそれがjavascriptメソッドを設定していません。ここに私のコード -デリゲートAsyncCallback関数からjavascript関数を呼び出す方法は?

public void DateTimeCallBack(IAsyncResult asy) 
    {    
     AsyncResult result = (AsyncResult)asy; 
     DateTimeDelegate dtdel = (DateTimeDelegate)result.AsyncDelegate; 
     lblDateTime.Text = dtdel.EndInvoke(asy).ToString("MMM dd, yyyy"); // this is not setting the value to lable 
     // so I want to use javascript 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "ScriptNo", "window.setTimeout(\"alert('Hello');\",0);", true);   
    } 

これはjavascriptの警告message.DoesをpopulatiogされていないAsyncCallback方法では、JavaScriptのこの方法をサポートしていません?または同じことを行うための他の方法がありますか?

答えて

2

あなたはサーバー側からJavaScript関数を「呼び出す」ことはできません。 JavaScriptをWebブラウザに出力すると、サーバーが生成したスクリプトタグ内のすべてが実行されます。あなたのコードが何をしようとしているのか分かりませんが、私はあなたが言いませんでした(私はそれがC#であると推測しています)ので、どんな言語なのかは分かりませんが、違いを明確に理解する必要があります。サーバーサイドコードとクライアントサイドコード、そしてそれらがどのようにやりとりするかを説明します。
サーバーサイドコードでは、ブラウザが実行するJavaScriptのみが生成され、実行時に直接影響することはありません。 同様に、javascriptはサーバー側で直接関数を呼び出すこともできません.HTTP GETまたはPOST要求は、サーバー側のコードで処理されます。

関連する問題