ASP.NET在updatepanel中使用脚本块

今天,在使用Visual Studio 2008中的AJAX Extensions中的UpdatePanel时,发现无法使用脚本

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
 <ContentTemplate>
  <asp:Panel ID="Panel1" runat="server">
   <ul>
    <li><span>用户名:</span>
     <asp:TextBox ID="txtName" runat="server" CssClass="text2"></asp:TextBox>
    </li>
    <li>
     <span>密  码:</span>
     <asp:TextBox ID="txtPass" runat="server" CssClass="text2" TextMode="Password"></asp:TextBox>
    </li>
   </ul>
   <div class="butt">
    <asp:ImageButton ID="imgLogin" runat="server" ImageUrl="~/images/home_42.gif" OnClick="imgLogin_Click" /> 
     <asp:ImageButton ID="imgReset" runat="server" ImageUrl="~/images/home_44.gif" OnClick="imgReset_Click" />
    </div>
   </asp:Panel>
   <asp:Panel ID="Panel2" runat="server">
    <br />
    <asp:Label runat="server" ID="lTip" style="margin-left:20px;"></asp:Label>
    <br />
    <br />
    <asp:ImageButton ID="imgLogout" runat="server" ImageUrl="~/images/home_75.png" 
                                            onclick="imgLogout_Click" style="margin-left:120px;" />
   </asp:Panel>
  </ContentTemplate>
</asp:UpdatePanel>

目的是想,登陆前,显示登陆部分:

ASP.NET在updatepanel中使用脚本块_第1张图片

而后,登陆后,显示:



然后,在给退出按钮添加JS弹窗事件:

ClientScript.RegisterStartupScript(this.GetType(), "error", "$(function(){asyncbox.alert('您已退出系统!','提示');});", true);

发现没有执行,但也没报错,经过别人的指点与查找MSDN,发现了

ScriptManager.RegisterStartupScript 方法 (Control, Type, String, String, Boolean)

,并且有这样一段话:

使用 ScriptManager.RegisterStartupScript 方法,可为与部分页面呈现兼容且不具有 Microsoft AJAX Library 依赖项的页面注册启动脚本块。仅当正在注册该块的控件位于要更新的 UpdatePanel 控件内时,才将通过使用此方法注册的启动脚本块发送到页面。若要在每次发生异步回发时都注册启动脚本块,请使用该方法的 RegisterStartupScript(Page, Type, String, String, Boolean) 重载。


而后,使用了:

ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "logout", "<script>$(function(){asyncbox.alert('您已退出系统!','提示');});</script>", false);
//此处按MSDN中所说,使用了<script></script>后应该为true,可是使用true却并没有执行,不知为何

真的有用了:

ASP.NET在updatepanel中使用脚本块_第2张图片




你可能感兴趣的:(.net,C#,asp.net)