Asp.net 动态添加的链接按钮不会触发事件
在我的项目中,我动态添加了一组链接按钮。当我为那些没有触发的链接按钮创建事件时。这是我的密码Asp.net 动态添加的链接按钮不会触发事件,asp.net,webforms,controls,Asp.net,Webforms,Controls,在我的项目中,我动态添加了一组链接按钮。当我为那些没有触发的链接按钮创建事件时。这是我的密码 namespace listofdirectories { public partial class directories : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
namespace listofdirectories
{
public partial class directories : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string[] drives = System.IO.Directory.GetLogicalDrives();
foreach (string str in drives)
{
LinkButton lnk = new LinkButton();
lnk.Text = str;
lnk.ID = str;
this.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(new LiteralControl("<br />"));
lnk.Click += new System.EventHandler(lnk_Click);
}
}
protected void lnk_Click(object sender, EventArgs e)
{
Response.Redirect("files.aspx");
}
}
}
目录的名称空间列表
{
公共部分类目录:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
string[]drives=System.IO.Directory.GetLogicalDrives();
foreach(驱动器中的字符串str)
{
LinkButton lnk=新的LinkButton();
lnk.Text=str;
lnk.ID=str;
此.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(新的LiteralControl(“
”);
lnk.Click+=newsystem.EventHandler(lnk\u Click);
}
}
受保护的无效lnk_单击(对象发送方,事件参数e)
{
重定向(“files.aspx”);
}
}
}
是ID中的特殊字符导致了问题。您正在将ID分配为“C:\”或“D:\”
我添加了一个基于计数器的ID以使其工作
int i = 0;
foreach (string str in drives)
{
LinkButton lnk = new LinkButton();
lnk.Text = str;
lnk.ID = i.ToString();
this.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(new LiteralControl("<br />"));
lnk.Click += new System.EventHandler(lnk_Click);
i++;
}
inti=0;
foreach(驱动器中的字符串str)
{
LinkButton lnk=新的LinkButton();
lnk.Text=str;
lnk.ID=i.ToString();
此.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(新的LiteralControl(“
”);
lnk.Click+=newsystem.EventHandler(lnk\u Click);
i++;
}
仅字母数字字符和下划线的组合
字符(\)是此属性的有效值。包括空间
或其他无效字符将导致ASP.NET页分析器错误
请阅读本文档以供参考您的单击事件必须在面板中添加控件之前分配
foreach (string str in drives)
{
LinkButton lnk = new LinkButton();
lnk.Text = str;
lnk.ID = str;
lnk.Click += new System.EventHandler(lnk_Click);
this.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(new LiteralControl("<br />"));
}
foreach(驱动器中的字符串str)
{
LinkButton lnk=新的LinkButton();
lnk.Text=str;
lnk.ID=str;
lnk.Click+=newsystem.EventHandler(lnk\u Click);
此.Panel1.Controls.Add(lnk);
Panel1.Controls.Add(新的LiteralControl(“
”);
}
是否仍有人在使用asp网页?为什么?@prashanti如果它解决了您的问题,请您将其标记为答案