使用ajax动态加载用户控件,并具有jquery文档准备功能
本文关键字:jquery 文档 功能 动态 ajax 加载 用户 控件 使用 | 更新日期: 2023-09-27 18:11:04
我有一个将通过
加载的用户控件public static string RenderControl(Control control)
{
var controlWriter = new StringWriter();
var htmlWriter = new Html32TextWriter(tw);
control.RenderControl(writer);
htmlWriter.Close();
return controlWriter.ToString();
}
用于编写html的AJAX
$('#testDiv').html(result.d);
通过ajax Post调用。它可以很好地加载用户控件,但由于javascript文档加载已经启动,我不能使用jquery的document. ready .
我的情况是我需要动态加载一个用户控件,并有jquery文档。ready fire,或其他等价的。我宁愿不使用updatepanel,但如果这是完成此任务的唯一方法,那么我将使用它。
我的问题的优雅解决方案是什么?
可以使用jQuery内置的ajaxStop事件在ajax调用完成时触发。
http://api.jquery.com/ajaxStop/我用一个自定义事件解决了类似的问题,该事件在ajax内容加载并显示后触发。
触发ajax函数内部的事件,加载后显示:
$(document).trigger('ajaxLoadCallback');
并在文档中捕获它。现成的脚本:
$(document).on('ajaxLoadCallback', function() {
// Your ready functions
}
如果你为文档后应该执行的所有内容创建一个函数。准备好之后,您可以在文档上调用此函数(例如readyFunctions()
)。
public partial class Default : Page
{
[WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}
}
$(function(){
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do something interesting here.
}
});
});