我在 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.
编辑:注意你有 ,
在你分配给innerText
如果不是打字错误,这也会是一个问题。
关于javascript - 在 ASP.NET C# 中获取 .ClientID 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147906/