c# Ajax IsInAsyncPostBack不工作在Chrome, FF或SAFARI -问题与部分回发
本文关键字:问题 SAFARI FF IsInAsyncPostBack Ajax 工作 Chrome | 更新日期: 2023-09-27 18:05:57
我有一个标准的缩略图库,带有一个轮播来浏览缩略图。我有一组链接,点击时,加载缩略图到旋转木马。在IE中,这工作得非常棒和完美。在Chrome, FF和Safari中,部分回发没有被感知,js没有在asyncpostback上重新加载,因为页面上的jquery都坏了/不工作(即togglefade不工作,单击事件不触发隐藏事件等)
编辑:**在HTML方面,有2个更新面板,一个嵌套在另一个。我添加了HTML代码,这可能会有所帮助。我已经剥离了大部分的页面内容,只留下了更新面板等,所以每个人都可以得到一个想法的html方面的东西。
HTML <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updtPnlRedCarpet" runat="server">
<ContentTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="redCarpetCarousel">
<div class="redCarpet">
<asp:PlaceHolder ID="PlaceHolder1" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
PAGE_LOAD事件
if (ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack)
{
RegisterClientStartupScript();
}
注册客户端启动脚本代码
private void RegisterClientStartupScript()
{
string path = Page.ResolveUrl("~/Scripts/jquery.msCarousel-min.js");
ScriptManager sManager = ScriptManager.GetCurrent(this.Page);
if (sManager != null && sManager.IsInAsyncPostBack)
{
ScriptManager.RegisterClientScriptInclude(
this.updtPnlRedCarpet, typeof(string), "include-js",
path);
ScriptManager.RegisterStartupScript(this.updtPnlRedCarpet, this.updtPnlRedCarpet.GetType(), "SliderScript",
"runTheCarousel();", true);
ScriptManager.RegisterStartupScript(this.updtPnlRedCarpet, this.updtPnlRedCarpet.GetType(), "ClickScript",
"loadThePage();", true);
}
else
{
this.Page.ClientScript.RegisterClientScriptInclude("SliderScript", path);
}
}
好吧,看来FF, Chrome和Safari都不喜欢文档。在javascript函数之前准备好。一旦我删除了文件。ready bits, FF, Chrome和Safari都能够找到这些功能,一切都在宇宙中再次平静。