Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 动态添加的链接按钮不会触发事件_Asp.net_Webforms_Controls - Fatal编程技术网

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如果它解决了您的问题,请您将其标记为答案