c#Ajax IsInAsyncPostBack在Chrome,FF或SAFARI中不起作用 - 部分回发有问题

时间:2011-08-18 21:20:00

标签: c# ajax

我有一个带有旋转木马的标准缩略图库来浏览缩略图。我有一组链接,点击后,将缩略图加载到轮播中。 在IE中,这非常棒且完美。在Chrome,FF和Safari中,部分回发没有被感知,并且js没有被重新加载到asyncpostback上,因为页面上的jquery都是损坏/不工作(即切换不起作用,单击事件不为隐藏事件触发等)

编辑:**在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);
        }
    }

1 个答案:

答案 0 :(得分:0)

好的,所以似乎FF,Chrome和Safari在javascript函数之前不喜欢document.ready。一旦我删除了document.ready位,FF,Chrome和Safari就能找到这些功能,宇宙中的一切都再次变得安静。