2011-11-08 12 views
-2

ClientScript.RegisterStartupScriptを使用してユーザーコントロールによって生成された動的スクリプトを呼び出すクライアントスクリプトがページにあります。ユーザーコントロールスクリプトは動的で、ページは静的です。ASP.netクライアントスクリプトの注文の問題

私が持っている問題は、ページクライアントスクリプトcantがユーザーコントロールによってレンダリングされた機能を見つけることです。メソッドのシグネチャが一致し、すべてが良好です。

ただし、ユーザー制御スクリプトは静的スクリプトの後のページに含まれています。これは違いをもたらすだろうか?もしそうなら、静的スクリプトの前にスクリプトをレンダリングする方法がありますか?MSDN APIドキュメントによると、唯一の方法はすべてのスクリプトを1つに結合することです。

動的スクリプトでは、ユーザーコントロールのClientIDを使用して一意に識別します(複数のユーザーコントロールが存在するため)、これは贅沢ではありません。

簡単な方法はありますか?

乾杯

答えて

0

私のアドバイスは、あなたがこの「ダイナミック」スクリプトパラメータとしてコントロール(複数可)のID(複数可)かかり静的なものを作るということです。たとえば、次のような何かを持っている可能性があり:

function MyFunction(dynamicElementID) 
{ 
    var myelement =document.getElementById(dynamicElementID); 
    //do something with myelement... 
} 

をそしてあなたのコードビハインドに、あなたはそうと、このスクリプトを呼び出すことができます。

ClientScript.RegisterStartupScript(this.GetType(),"myscript","MyFunction('"+control.ClientID+"');"); 
0

私はあなたがその動的な機能を持っていること、それは少し奇妙見つけます静的なスクリプトが知っている?コードの一部を表示できますか?おそらく、あなたの依存関係を解決するためのより良いアプローチがあると思います。

通常、ダイナミックコントロールはIDを汎用静的関数に渡します。

関連する問題