したがって、1つのページに複数回存在するユーザーコントロールがあります。バックエンドからuserControl1.someFunction();を呼び出すことができます。そして、someFunction()を呼び出すユーザーコントロールを指定します。しかし、ユーザーコントロールのフロントエンドにjava-script関数がある場合、個々のユーザーコントロールに対してそれを呼び出すことはできません。javaFunction()を呼び出すだけですが、これは呼び出すユーザーコントロールを指定しません。これが私がやりたいことです、clientsideUserControl1.javaFunction(); これは可能ですか?私がやっているのは、関数名IE:clientsideUserControl1_javaFunction()を動的に生成することですが、これを行うにはもっと良い方法が必要だと感じています。
質問する
1246 次
3 に答える
3
通常、1つの関数を使用して、ページ全体で機能するようにするか、パラメーター(関心のあるユーザーコントロールへの参照)を取得するように変更することができます。
そうすれば、同じjavascript関数の複数のコピーを持つ必要はありません。
だから代わりに
function CLIENTID_javascriptFunction{
}
あなたはグローバルレベルで機能しているでしょう:
function javascriptFunction(id){
}
関心のあるdomオブジェクトのIDを使用して呼び出します(ClientIDを使用してコントロールのDOM IDを取得します)
于 2012-07-03T17:56:51.590 に答える
1
この場合、ユーザーコントロールの代わりにサーバーコントロールを使用する方がよいことがわかりました。サーバーコントロールは作成が少し複雑に見えますが、javascript関数のスコープを保護します。
違いについて説明しているリンクは次のとおりです。 http://www.hotscripts.com/forums/asp-net/31174-difference-between-user-control-custom-server-controls.html
于 2012-07-12T17:20:20.393 に答える
-1
考えられる解決策の1つは次のとおりです。
function <%= ClientID %>javaFunction()
{
//code here
}
コントロールのクライアントIDと関数名を使用して、ユーザーコントロールごとに関数宣言を作成します。
于 2012-07-03T17:53:41.133 に答える