我有一个页面,加载了一组歌曲的播放列表。这个播放列表中的单个歌曲可以使用jquery进行拖动。该页面还使用ajax更新面板进行服务器端排序。问题在于,当我执行服务器端排序后,jquery方法就不再起作用了。
在ASP.NET Ajax面板更新页面后,jquery方法会重新附加到文档上吗?
我有一个页面,加载了一组歌曲的播放列表。这个播放列表中的单个歌曲可以使用jquery进行拖动。该页面还使用ajax更新面板进行服务器端排序。问题在于,当我执行服务器端排序后,jquery方法就不再起作用了。
在ASP.NET Ajax面板更新页面后,jquery方法会重新附加到文档上吗?
如果我们正在使用UpdatePanel,那么存在一个问题。因此,每次页面加载时,我们需要从服务器端添加JavaScript。这可以通过将所有JavaScript代码添加到字符串变量中,并使用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);
}
script
中。
在页面加载时调用该函数。这样它就会再次添加到页面中。
我认为这将解决问题。我相信您使用.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)来提交后台。