c # Ajax IsInAsyncPostBack не работает в Chrome, FF или SAFARI - проблема с частичной обратной передачей - PullRequest
0 голосов
/ 19 августа 2011

У меня есть стандартная галерея миниатюр с каруселью для просмотра миниатюр. У меня есть набор ссылок, при нажатии на которые загружаются миниатюры в карусель. В IE это работает потрясающе и безупречно. В Chrome, FF и Safari частичная обратная передача не распознается, и js не перезагружается при асинхронной обратной передаче, поскольку 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>

INSIDE CODE-BEHIND PAGE_LOAD EVENT

        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 голосов
/ 19 августа 2011

Хорошо, похоже, что FF, Chrome и Safari НЕ любят документ. Еще до функций javascript. После того как я удалил документ, биты FF, Chrome и Safari смогли найти функции, и во вселенной снова все стало тихо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...