Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
C# ASP.NET(C)-单击动态生成的ImageButtons的事件_C#_Asp.net_Imagebutton_Dynamically Generated - Fatal编程技术网

C# ASP.NET(C)-单击动态生成的ImageButtons的事件

C# ASP.NET(C)-单击动态生成的ImageButtons的事件,c#,asp.net,imagebutton,dynamically-generated,C#,Asp.net,Imagebutton,Dynamically Generated,在我的网站上,我生成了七个ImageButton,其中只有一个是随机启用的。我想为该按钮生成一个单击事件,该事件仅在按下特定组合键时触发,例如:按下e+单击时 谢谢你的帮助 protected void Page_Load(object sender, EventArgs e) { //Generates a <int, string> dictionary LoginHelper.CreateDictionary(images);

在我的网站上,我生成了七个ImageButton,其中只有一个是随机启用的。我想为该按钮生成一个单击事件,该事件仅在按下特定组合键时触发,例如:按下e+单击时

谢谢你的帮助

protected void Page_Load(object sender, EventArgs e)
    {
        //Generates a <int, string> dictionary
        LoginHelper.CreateDictionary(images);

        //'buttons' is an int list
        while (buttons.Count < 7)
        {
            //generates a random number from 1 to 7
            int number = LoginHelper.GenerateNumber();

            if (buttons.Contains(number) == false)
            {
                buttons.Add(number);
                ImageButton btn = new ImageButton();
                btn.CssClass = "loginButtons";
                btn.ImageUrl = (from x in images
                                where x.Key == number
                                select x.Value).First();
                //gets the link string according to the randomized number
                btn.PostBackUrl = LoginHelper.GetLink(number);

                if (btn.PostBackUrl == string.Empty)
                {
                    btn.Enabled = false;
                }

                btn.Click += new ImageClickEventHandler(btn_Click);

                footer.Controls.Add(btn);
            }
        }
    }
    //The event is not triggered
    void btn_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton button = sender as ImageButton;
        ConsoleKeyInfo cki = Console.ReadKey();

        if (cki.Key == ConsoleKey.E)
        {
            button.PostBackUrl = "~/about.aspx";
        }
    }

首先,您需要在Page_Init而不是Page_Load上添加按钮,在Page_Load中,注册事件的时间要晚于页面周期


关于按下的特定组合键,我很确定您只能在客户端使用Javascript来完成此操作,抱歉,我无法提供更多帮助。

您遇到了什么问题?调试时,是否在btn\U click方法中输入?这可能是,但我有一个严重的问题,即您在服务器上运行ASP.NET web应用程序时从控制台读取单击的按钮,考虑到用户是通过浏览器远程连接的。什么是页脚,什么是按钮?不,它不输入方法。页脚是添加按钮的位置,“按钮”是保存按钮编号的整数列表。