在asp.net中,我在我的aspx页面上声明了这个图像控件:
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/hourglass.gif" Enabled ="true" Visible="true" />
我有一个按钮,可以在数据库提取完成时触发javascript显示沙漏图像:
<asp:button id="btnSearch" style="Z-INDEX: 103; LEFT: 257px; POSITION: absolute; TOP: 60px; width: 149px; height: 29px;" tabIndex="5" runat="server" Text="Search Recent History" OnClientClick="return showhourglass();" ></asp:button>
以下是javascript中的showhourglass代码:
function showhourglass() {
document.getElementById('<%=Image1.ClientID%>').setAttribute("style","visibility:visible");
}
我已经设置了javascript以等待资源加载,然后才能使图像不可见:
$(window).on("load",function () { document.getElementById('<%=Image1.ClientID%>').setAttribute("style", "visibility:hidden"); });
按预期加载页面时,图像(沙漏)不可见。我单击按钮,当数据库按预期获取数据时,会出现沙漏。但是,在生成数据并填充表格时,&#34; window.on(&#34; load&#34;,...)函数会抛出异常并报告document.getElementById(&#39; Image1&#39;)为空。
所以我有两个问题。首先,为什么这是空的?图像的声明超出了标记中的表单标记,因此这不是部分页面加载吗?这个图像是否仍然可以在DOM中进行操作?
第二个问题:是否在重新加载单个元素的任何时候调用$ window.on(&#34; load&#34;,...)?由于后续单击按钮会在(窗口).on(&#34; load&#34;,...)中产生NULL,因此showhourglass函数在尝试定位图像控件时也会返回NULL。换句话说,页面已正确加载,但单击一次按钮后,任何和所有尝试引用它的javascript都会将图像返回为NULL。
感谢您的帮助。