0

私のWebサイトでは、1つ(ランダム)のみが有効になっている7つのImageButtonを生成しています。そのボタンに対して、特定のキーの組み合わせが押されたときにのみトリガーされるクリック イベントを生成したいと考えています (例: E+Click を押したとき)。

助けてくれてありがとう。

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";
        }
    }
4

1 に答える 1

2

最初に、Page_Load ではなく Page_Init にボタンを追加する必要があります。ここでは、イベントが登録されるページ サイクルの後半になります。

特定のキーの組み合わせが押されていることについては、クライアント側で Javascript を使用してのみこれを達成できると確信しています。申し訳ありませんが、それ以上のことはできません。

于 2011-09-05T16:16:18.783 に答える