javascript - 在 ASP.NET C# 中获取 .ClientID 的问题

标签 javascript asp.net ajax clientid

我在 AJAX 工具包的 AsyncFileUpload 的 uploadError javascript 函数中有以下内容:

function uploadError(sender, args) {
    document.getElementById("<%# uploadResult.ClientID %>").innerText = args.get_fileName(), "<span style='color:red;'>" + args.get_errorMessage() + "</span>";
}

不幸的是,ClientID 调用返回了 Null,因此出现了 javascript 错误。

我还注意到,在加载页面后,我的所有控件都没有通常的 .NET 格式:例如:

<asp:Label runat="server" Text="Select an image to upload it to this stock item...." ID="uploadResult" /> 

通常会像这样呈现:

<span id="ctl00_ContentPlaceHolder1_uploadResult">Choose a webstock file to upload...</span>

但是对于这个文件,它呈现为:

<span id="uploadResult">Select an image to upload it to this stock item....</span>

我认为这是同一个问题,但不知道为什么会这样。

最佳答案

问题是您正在使用 <%#仅在绑定(bind)(评估)时执行的语法。

你应该使用 <%=将始终执行的语法。

例如:

function uploadError(sender, args)
{
    document.getElementById('<%= uploadResult.ClientID %>').innerText = 
        args.get_fileName() + "<span style='color:red;'>" + 
        args.get_errorMessage() + "</span>";
}

Reference for more information on asp.net inline syntax.

Data-binding Syntax

Inline Syntax

编辑:注意你有 ,在你分配给innerText如果不是打字错误,这也会是一个问题。

关于javascript - 在 ASP.NET C# 中获取 .ClientID 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147906/

相关文章:

Javascript 正则表达式不敏感

c# - 使双变量小于 1

c# - SignalR 将消息发送到单个 connectionId

javascript - PHP - 如果用户退出网页则取消链接文件?

ajax - AngularJS JSON 解析(ajax)

javascript - requestAnimationFrame 循环不正确的 FPS

javascript - easyui 添加整列

javascript - 从另一个 Controller 更改变量值

c# - 如何将多个 ScriptBundle 捆绑到一个新的 ScriptBundle

javascript - 无法将 JSON 文件放入变量中