2017-01-11 1 views
0

私はこの質問のための多くの参照を読んだが、結果を得ていない。だから、ここで自分のシナリオを説明しようと思った。ASP.Netのユーザーコントロールからクライアントスクリプトを呼び出す方法

これは私の3つのスクリプトで、view.ascxのコントロールです。私は.csファイル機能とクリックイベントでそれを呼びたいと思います。

view.ascx

<script type="text/javascript"> 
function startLoading() { 
    alert("load start"); 
    var el = jQuery(".scp-entry-header"); 
    App.blockUI(el); 
} 


function stopLoading() { 
    alert("load end"); 
    var el = jQuery(".scp-entry-header"); 
    App.unblockUI(el); 
} 

function getCalendarData() { 
    alert("calendarcalled"); 
} 
</script> 

view.ascx.cs

//ViewData button click 
protected void btnGetData_Click(object sender, EventArgs e) 
{ 
    //How to call startLoading function here? 
    process from database; 
    //How to call stopLoading function here? 
} 

//simple function call 
protected void showCalendar() 
{ 
    //How to call getCalendarData function here? 
} 

私はRegisterScriptについて読んますが、結果を取得していません。私はRegisterScriptのどこに関数を呼び出すのかを理解していません。

誰でも私に詳細を教えてもらえますか?ここでJavaScript関数をどのように呼び出すことができますか?

+0

が重複する可能性を試してみてください[どのように私はクリックasp.netボタンからJavaScriptを呼び出すのですか?](のhttp://のstackoverflow。 com/questions/15136034/how-do-i-call-javascript-asp-net-button-click) – rcdmk

+0

@rcdmkこれは同じではありません。私は '.cs'ファイルからjavascript関数を呼び出したいです(ボタンクリックではありません)。私は '.cs'ファイルの単純な関数でjavascriptを呼びたいと思っています。私は私の質問をより明確に編集しました。誤解を防ぐために私を修正してください。 –

答えて

0

のこの

protected void btnGetData_Click(object sender, EventArgs e) 
 
{ 
 
     //How to call startLoading function here? 
 
     process from database; 
 
     //How to call stopLoading function here? 
 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "startLoading", true); 
 
}

または

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('Hello.')</script>", false); 
+0

これはUser Controlの場合に役立ちますか?私の質問はUserControlです –

+0

あなたのユーザーコントロールのリンクボタンの委任またはカスタムイベントを追加し、これを呼び出せるカスタムイベントを使用する必要があります。 –

1

C#コードの途中でJavaScript関数を呼び出してサーバーサイドコードの実行を続けることはできません。

.csファイルでJavaScript関数を呼び出すのは、サーバーサイドコードが実行された後の実行のスケジューリング/マーキングにすぎません。それらはサーバーコードと一緒に実行されません。

つまり、​​と非同期コードでこれを実装する必要があります。これを有効にするか、JavaScriptで非同期呼び出しとして実装することをお勧めします。

クライアントのコードはクライアント上にある必要があります。それらを混ぜないようにしてください。

+0

ありがとうございます。私はいくつかの参照(http://stackoverflow.com/questions/18036508/how-to-call-a-java-script-function-from-user-controls)を読んだが、それは有用ではない。上記の状況を処理するために私は何をすべきですか? –

関連する問題