问题描述
|
我创建ASP.NET4 C#Web应用程序
我在使用母版页的页面中有jQuery,而我的内容占位符在更新面板中
发生后备脚本时脚本不起作用
母版页
<body>
<form runat =\"server\">
<br />
<asp:ScriptManager ID=\"ScriptManager1\" runat=\"server\">
<Scripts>
<asp:ScriptReference Path=\"~/Scripts/jquery-1.4.4.min.js\" />
<asp:ScriptReference Path=\"~/Scripts/jquery-ui-1.8.6.custom.min.js\" />
<asp:ScriptReference Path=\"~/Scripts/jquery-ui-timepicker-addon.js\" />
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID=\"UpdatePanel1\" runat=\"server\" UpdateMode=\"Conditional\">
<ContentTemplate>
<asp:ContentPlaceHolder ID=\"ContentPlaceHolder1\" runat=\"server\">
</asp:ContentPlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
内容页
<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" runat=\"server\">
</asp:Content>
<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"ContentPlaceHolder1\" runat=\"server\">
<asp:MultiView ID=\"MultiView1\" runat=\"server\" ActiveViewIndex=\"0\">
<asp:View ID=\"View1\" runat=\"server\">
<asp:Button ID=\"Button1\" runat=\"server\" OnClick=\"Button1_Click\" Text=\"Button\" />
<br />
<asp:TextBox ID=\"TextBox1\" runat=\"server\"></asp:TextBox><script type=\"text/javascript\">
$(\'#<%= TextBox1.ClientID %>\').timepicker({
ampm: true,hourMin: 8,hourMax: 23
});
</script>
</asp:View>
<asp:View ID=\"View2\" runat=\"server\">
<asp:TextBox ID=\"TextBox3\" runat=\"server\"></asp:TextBox><script type=\"text/javascript\">
$(\'#<%= TextBox3.ClientID %>\').timepicker({
ampm: true,hourMax: 23
});
</script>
</asp:View>
解决方法
将
UpdatePanel
移到MasterPage
之外。
将整个页面放入2英镑(这是您拥有的)会增加巨大的开销-整个页面在每次部分回发时都通过网络发送。此开销将降低性能。
“ 2”仅应包裹页面的相关区域和较小区域。
一旦ѭ2the出现在内容页面中,则需要确保在UpdatePanel
内重新添加JQuery语句。这样可以确保回传后JQuery脚本不会丢失。就像是:
<ContentTemplate>
<script type=\"text/javascript\" language=\"javascript\">
Sys.Application.add_load(YOUR_FUNCTION_NAME);
</script>