2009-08-10 19 views
0

在我當前的項目中,我創建了許多用戶控件,其中一些包含一些用於客戶端事件處理的自定義Javascript。我正在使用OnClientClick =「function()」等註冊我的事件處理程序。在ASP.NET Web用戶控件中確保唯一的Javascript標識符

現在,我想知道如何確保所有的Javascript函數名稱對於控件的每個特定實例都是唯一的,所以我不會冒險控件之間的名稱衝突。我曾經想過把命名對象內的所有功能,如

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

,然後訂閱使用類似

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

事件這似乎只是我不能不<%=%> - OnClient *屬性中的表達式。因此我想知道;有沒有一些「最佳做法」做到這一點?

回答

1

最快的解決辦法可能是簡單地有一個通用的事件處理程序委託給相應的處理程序:

OnClientClick="handleClick(this)" 

thisonclick屬性的範圍是被點擊當前元素。

ASP.NET的方式是register the client script。具體來說,請參閱下的建議。參考其他控件內部呈現的控件(動態創建腳本並註冊它)。