簡體   English   中英

C#Ajax IsInAsyncPostBack在Chrome,FF或SAFARI中不起作用-部分回發有問題

[英]c# Ajax IsInAsyncPostBack not working in Chrome, FF or SAFARI - trouble with partial postback

我有一個帶有輪播的標准縮略圖庫,可以瀏覽縮略圖。 我有一組鏈接,當單擊它們時,會將縮略圖加載到輪播中。 在IE中,這非常棒且完美。 在Chrome,FF和Safari中,未檢測到部分回發,並且未在asyncpostback上重新加載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>

內置代碼隱藏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函數之前的document.ready。 一旦我刪除了document.ready位,FF,Chrome和Safari就能夠找到這些功能,並且一切在宇宙中再次變得安靜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM