2009-08-10 6 views
0

私の現在のプロジェクトでは、いくつかのユーザーコントロールを作成しています。その中には、クライアント側のイベント処理用のカスタムJavaScriptが含まれています。 OnClientClick = "function()"などを使用してイベントハンドラを登録しています。ASP.NET Webユーザーコントロールで一意のJavascript識別子を確保

ここで、すべてのJavascript関数名がコントロールの特定のインスタンスごとに一意であることを確認する方法が不思議です。そのため、コントロール間の名前の競合は発生しません。 - 私はそれはちょうど私ができないように思えるが、<% =%>

var <%=ClientID%>_Script { 
    method1: function() { ...} 
} 

のように、指定されたオブジェクト内のすべての機能を入れた後、

OnClientClick="<%=ClientID%>_Script.methodName()" 

のようなものを使用してイベントをサブスクライブについて考えていますOnClient *属性内の式。それで私は不思議です。これを行うためのいくつかの「ベストプラクティス」がありますか?

答えて

1

最速のソリューションは、単に適切なハンドラにその代表者の一般的なイベントハンドラを持っているかもしれません:onclick属性の範囲に

OnClientClick="handleClick(this)" 

thisクリックされた現在の要素です。

ASP.NETの方法はregister the client scriptです。具体的には、の推奨事項を参照してください。他のコントロール内でレンダリングされる参照コントロール(スクリプトを動的に作成して登録してください)

関連する問題