2011-08-24 46 views
0

我有多個用戶控件和javascript函數。我將控制ID設置爲客戶端功能 - 將其與另一個分開。我的JavaScript代碼如下所示:將表單的動態客戶端ID分配給靜態方法結果

function <%= this.ClientID %>UploadComplete(sender, args) { 
.... 
} 

我要註冊的控件聲明這種方法,

<ajaxToolkit:AsyncFileUpload runat="server" OnClientUploadComplete ="<%#uploaderror.ClientID%>UploadComplete" 
     ID="AsyncFileUpload"/> 

但在加價我

{"uploadComplete":<%#ClientID%>UploadComplete}," 

凡uploaderror- 我試過使用屬性:

protected void Page_Load(object sender, EventArgs e) 
{ 
    AsyncFileUpload.Attributes.Add("OnClientUploadComplete", this.ClientID + "UploadComplete"); 
} 

標記是好的。但事件沒有發生。

所以我有兩個問題: 1)爲什麼<%# - 唐t works. 2) Why added by attributes events don t在javascripts?

謝謝。

回答

2

對於你的第一個問題,它不起作用的原因是你不能像你所做的那樣將數據綁定代碼和文本混合在一個服務器控件的屬性中。它必須是一個或另一個。所以你可以做的是:

OnClientUploadComplete='<%# uploaderror.ClientID + "UploadComplete"%>' 
+0

<%#是用於數據綁定 - 你不是在你正在使用數據綁定的控件的上下文中使用它嗎? – patmortech

+0

<%=在服務器控件屬性中不起作用,所以這不是一個選項。 – patmortech

+0

對不起,我不喜歡你的第一個問題 –