我有一个将通过
加载的用户控件public static string RenderControl(Control control)
{
var controlWriter = new StringWriter();
var htmlWriter = new Html32TextWriter(tw);
control.RenderControl(writer);
htmlWriter.Close();
return controlWriter.ToString();
}
AJAX用于编写html
$('#testDiv').html(result.d);
这是通过ajax Post调用的。它加载用户控件很好,但由于javascript文档加载已经触发,我不能使用jquery的document.Ready。
我的情况是我需要动态加载用户控件并拥有jquery document.ready fire 或一些等价物。我宁愿不使用更新面板,但如果这是完成此任务的唯一方法,那么这就是我将要使用的。
我的问题的优雅解决方案是什么?
答案 0 :(得分:1)
您可以使用内置的jQuery ajaxStop事件在ajax调用完成时触发。
答案 1 :(得分:0)
我解决了与加载和显示ajax内容后触发的自定义事件类似的事情。
在加载并显示之后触发ajax函数内的事件:
$(document).trigger('ajaxLoadCallback');
并在你的document.ready脚本中抓住它:
$(document).on('ajaxLoadCallback', function() {
// Your ready functions
}
如果为document.ready之后应该执行的所有内容创建函数,则可以在document.ready上和触发自定义事件之后调用此函数(例如readyFunctions()
)。
答案 2 :(得分:0)
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.
}
});
});