簡體   English   中英

asp.net ajax jquery

[英]asp.net ajax jquery

我有一個頁面加載歌曲的播放列表。 播放列表中的各個歌曲可以使用jquery在播放列表中拖動。 該頁面還包含服務器端排序和ajax更新面板。 問題是,在我進行服務器端排序之后,jquery方法不再起作用了。

在asp.net ajax面板更新頁面后,jquery方法是否重新附加到文檔?

如果元素被ajax更新替換,並且使拖動工作的jquery事件綁定在元素本身上,那么是的,事件綁定將不在新元素上。

一種選擇是在ajax成功回調中重新運行,無論初始化方法創建那些事件綁定。 另一種選擇是使用jQuery的delegate()方法將這些事件處理程序綁定到給定容器中與選擇器匹配的任何元素(即使在設置綁定后添加它)。

在asp.net ajax面板更新頁面后,jquery方法是否重新附加到文檔?

如果它們受到document.ready事件的約束,那么簡短的答案就不是。 “快速而骯臟”的修復方法是使用pageLoad。 看看這個論壇帖子

如果我們使用updatepanel則存在問題。所以我們需要在每次頁面加載時從服務器端添加javascript。這可以通過將所有javascript代碼添加到字符串變量並使用ScriptManager.RegisterStartupScript(this, this.GetType(), "validation", script, false);添加來完成。 ScriptManager.RegisterStartupScript(this, this.GetType(), "validation", script, false); 請訪問http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript.aspx/ “以獲取有關該函數及其參數的更多信息。

你可以做這樣的功能

 private void addScript()
        {
            string script = @"<script type=""text/javascript"" language=""javascript"">
              javascript function including jquery
               </script>";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "validation", script, false);
        }

所有的javascript函數都將添加到字符串script 在pageload中調用該函數。因此它將再次添加到頁面中。 我認為這將解決問題。

我相信你會更樂意使用.load

$("body").append("<div style='display:none;'></div>");
$("div:last").load("url.aspx?id=1", function(response, status, xml){ ...do stuff });

我總是有$ .ajax煩人的問題,很多的紀念碑和沖突

如果你的更新面板壞了,你仍然可以使用javascript __doPostBack(elmID,args)回發;

暫無
暫無

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

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