我正在尝试修复 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个赞
在处理事件之前,您必须在每次页面加载之前重新创建动态控件,否则事件将没有所有者。这应该在OnInit
Load 之前的 Initialization 事件(页面的事件处理程序)中完成。
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消