gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:40 25 4
gpt4 key购买 nike

我正在尝试修复 Web 应用程序中的一个错误,该错误会动态创建带有附加事件的按钮。我正在处理这个从 for 循环内部调用的 man 函数。根据我所做的研究,这种分配事件的方式应该有效,但事实并非如此。事实上,点击按钮出于某种原因消失了。我是否分配了错误的动态事件,或者是否有其他完全出错的地方? “drivers”变量是在其中创建按钮的面板。

 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);
}

感谢您的帮助。

最佳答案

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

关于c# - ASP.NET 动态生成的事件代码未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50648660/

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