将表单的动态客户端ID分配给静态方法结果

时间:2011-08-24 13:58:04

标签: asp.net user-controls ajaxcontroltoolkit

我有多个用户控件和javascript函数。我将控制ID设置为客户端功能 - 将其与另一个功能分开。我的javascript代码如下:

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

我想在控制声明中注册这个方法,

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

但是在Mark-Up中我得到了

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

uploaderror- 我尝试使用属性:

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

标记很好。但事件没有发生。

所以我有两个问题: 1)为什么&lt;%# - don t works. 2) Why added by attributes events don在javascripts中被解雇了?

谢谢。

1 个答案:

答案 0 :(得分:2)

对于您的第一个问题,它不起作用的原因是您不能像在服务器控件的属性中那样混合数据绑定代码和文本。它必须是一个或另一个。所以你可以做的是:

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