ASP.NET在updatepanel中使用脚本块

来源:互联网 发布:如何在淘宝买东西便宜 编辑:程序博客网 时间:2024/05/02 03:10

今天,在使用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>

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


而后,登陆后,显示:



然后,在给退出按钮添加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却并没有执行,不知为何

真的有用了:





原创粉丝点击