gpt4 book ai didi

jquery - ASP.Net/AJAX - 使用 c# 在 asp.net 中动态加载用户控件后,事件不会触发

转载 作者:行者123 更新时间:2023-12-01 06:04:25 27 4
gpt4 key购买 nike

我在我的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com