为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET 动态生成的事件代码未运行

ASP.NET 动态生成的事件代码未运行

C#
慕尼黑的夜晚无繁华 2021-07-16 15:06:44
我正在尝试修复 Web 应用程序中的一个错误,该应用程序动态创建带有附加事件的按钮。我正在处理这个从 for 循环内部调用的 man 函数。从研究中我已经完成了这种分配事件的方式应该有效,但事实并非如此。事实上,由于某种原因,点击按钮就会消失。我分配的动态事件是错误的还是有其他完全错误的地方?“驱动程序”变量是在其中创建按钮的面板。 public void generateDriver(string name, string route, string id) {    Debug.WriteLine("A driver has been created!");    Literal driverLit = new Literal();    driverLit.Text += "<div class='routeTitle'>";    driverLit.Text += "<input type='text' id='hiddenID' text='" + id + "' hidden />";    driverLit.Text += name + "<br>";    driverLit.Text += route + "<br>";    Button newButton = new Button();    newButton.Text = "Remove";    newButton.ID = id;    newButton.Click += new EventHandler(RemoveDriver);    newButton.CssClass = "btn btn-danger";    drivers.Controls.Add(driverLit);    drivers.Controls.Add(newButton);    drivers.Controls.Add(new Literal    {        Text = "</div>"    });}public void RemoveDriver(object sender, EventArgs e){    Debug.WriteLine("An event has been triggered!");    Button removeBtn = (Button)sender;    string id = removeBtn.ID;           string querystring = Request.QueryString["id"].ToString();    List<string> routes = querystring.Split('-').ToList();    routes.Remove(id);    string newQueryString = string.Join("-", routes);    Response.Redirect("/Orders.aspx?id=" + newQueryString);}谢谢你的帮助。
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

在处理事件之前,您必须在每次页面加载之前重新创建动态控件,否则事件将没有所有者。这应该在OnInitLoad 之前的 Initialization 事件(页面的事件处理程序)中完成。


查看完整回答
反对 回复 2021-07-18
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信