【发布时间】:2014-11-26 07:22:23
【问题描述】:
我在母版页上包含一个 UserControl(带有 FileUpload),如下所示:
母版页
<uc:uploadFiles ID="UC1" runat="server"/>
上传文件.ascx
<script type="text/javascript">
function ValidateUpload() {
var FileUpload_function = document.getElementById('myfile');
if (FileUpload_function.value == '') {
return false;
}
else {
//do stuff }
return true;
}
</script>
<div id="div_FileUpload" class="FileUpload_content" runat="server">
<asp:FileUpload ID="myfile" class="FileUpload" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="myfile" ClientValidationFunction="ValidateUpload" />
</div>
当我运行该页面时,我收到由 CustomValidator 引起的以下错误: 无法获取未定义或空引用的属性“值”。
我的猜测是 FileUpload 值是在整个页面呈现之前验证的,因为当我删除 UserControl 并将代码直接移动到 MasterPage 时,CustomValidator 工作正常。
我该如何解决这个问题?
【问题讨论】:
-
你必须寻找生成的html。当您在浏览器中看到时,请确保控件的 id 保持不变。 stackoverflow.com/questions/10045419/…
-
就像@dotnetstep所说的检查文件上传的id,
myfile之前会有一个前缀
标签: javascript c# asp.net user-controls