一个关于updatepanel的有趣现象

前几天,同事碰到一个问题,帮忙看时。发现在updatepanel中的js脚本的服务器端变量不能刷新。

以下为重新现象代码:

代码
<form id="form1" runat="server">
    
<div>
        
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Button ID="Button1" runat="server" Text="doPostBack" />
                
<input type="button" name="ShowNow" value="ShowNow" onclick="showNow()" />
                
<%=DateTime.Now.ToString() %>
                
<script type="text/javascript">
                    
function showNow() {
                        alert(
"<%=DateTime.Now.ToString() %>");
                    }
                
</script>
            
</ContentTemplate>
        
</asp:UpdatePanel>
        
<%=DateTime.Now.ToString() %>
    
</div>
    
</form>

代码内容很简单。当你点击doPostBack按钮后,updatepanel内的时间发生了变化(但js脚本的时间没有变),updatepanel外的时间没有变化。

以前还真不知道updatepanel更新时会过滤js中服务器端脚本。

不知道这算bug?还是设计本来就是如此?

qishichang

原文地址:https://www.cnblogs.com/qishichang/p/1768671.html