我在我的 asp.net 应用程序中使用 jquery ajax 动态加载了用户控件。
一切工作正常,除了用户控件加载页面上的 asp.net 链接按钮后没有触发单击事件。链接按钮不是动态加载的。
请帮我解决这个问题。
谢谢
世斌虚拟机
html 标记
退出
更多的
js web方法调用函数
function callRefinepopUpAjax(type, id)
{
var panel_popup_layer = $('#id');
var val;
if (Serach.hasOwnProperty(type))
val = Serach[type];
$.ajax({
type: "POST",
url: "../ProfileSearchService.asmx/LoadRefinePopUp",
data: "{Type:'" + type + "',Value:'" + val + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$(panel_popup_layer).html(msg.d);
setUp();
}
});
}
网络方法
public string LoadRefinePopUp(string Type, string Value)
{
Page page = new Page();
UserControl ctl = new UserControl();
ArrayList list = new ArrayList();
list.Add(Value);
Context.Items["WebForm1List"] = list;
try
{
ctl =
(UserControl)page.LoadControl("~//popup" + Type + ".ascx");
HtmlForm form = new HtmlForm();
form.Controls.Add(ctl);
page.Controls.Add(form);
StringWriter textWriter = new StringWriter();
HttpContext.Current.Server.Execute(page, textWriter, false);
return CleanHtml(textWriter.ToString());
}
catch (Exception ex)
{
return ex.toString();
}
}
最佳答案
你可以这样尝试......
注意:这是一个示例......如果您指定用户控件(代码)那么它将很有用......
假设类型名称跟在文件名称后面,您可以将其强类型化为该类型,这样,
var myUserControl = Page.LoadControl("~/View/EditScheduleProgram.ascx") as EditScheduleProgram;
然后您就可以访问该类型公开的任何自定义(或特定)事件,但不能访问 Control
公开的事件,因此,
myUserControl.MyEvent += MyEventHandler;
关于jquery - ASP.Net/AJAX - 使用 c# 在 asp.net 中动态加载用户控件后,事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7937712/