这是有效的
<embed height="100" width="100" src="WindowsStartup.wav" />
但这不起作用
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="4000">
<embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>
我该如何解决这个问题?
答案 0 :(得分:1)
问题来源是您在asp:Timer
服务器控件内嵌套embed
标记:
<asp:Timer ID="Timer1" runat="server" Interval="4000">
<%-- This should be placed outside --%>
<embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>
通过检查浏览器开发工具中呈现的HTML输出,我发现嵌套在embed
控件内的Timer
标记完全消失,留下隐藏的span
标记id="Timer1"
asp:Timer
之前放置:
<span id="Timer1" style="visibility:hidden;display:none;"></span>
要解决此问题,请将embed
标记放在控件标记之外,因为服务器控件标记内的任何内容都可以保留给control properties,并且可能内部的纯HTML标记未呈现,但某些属性除外能够保存HTML模板(例如ItemTemplate
)。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<embed height="100" width="100" src="WindowsStartup.wav" />
<asp:Timer ID="Timer1" runat="server" Interval="4000">
</asp:Timer>
这是以上标记的输出:
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', [], [], [], 90, '');
//]]>
</script>
<embed height="100" width="100" src="WindowsStartup.wav" />
<span id="Timer1" style="visibility:hidden;display:none;"></span>