Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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 c#页面上有多个占位符和多个动态按钮_C#_Asp.net - Fatal编程技术网

asp.net c#页面上有多个占位符和多个动态按钮

asp.net c#页面上有多个占位符和多个动态按钮,c#,asp.net,C#,Asp.net,我正在创建动态按钮,并将唯一按钮添加到两个不同的占位符中。单击事件已正确添加到每个按钮,但按钮单击事件未在第二个占位符上触发。如果我将按钮更改为仅添加到1占位符,则它们都会正确触发。我可以改变周围的事物来绕过这个问题,但我很好奇为什么第二个占位符是个问题。代码如下: 代码隐藏: //Create Colour Button RadButton buttonColour = new RadButton();

我正在创建动态按钮,并将唯一按钮添加到两个不同的占位符中。单击事件已正确添加到每个按钮,但按钮单击事件未在第二个占位符上触发。如果我将按钮更改为仅添加到1占位符,则它们都会正确触发。我可以改变周围的事物来绕过这个问题,但我很好奇为什么第二个占位符是个问题。代码如下:

代码隐藏:

                //Create Colour Button
                RadButton buttonColour = new RadButton();
                buttonColour.EnableEmbeddedBaseStylesheet = false;
                buttonColour.EnableEmbeddedSkins = false;
                buttonColour.CssClass = "VariationButtonsColour";
                buttonColour.BackColor = System.Drawing.Color.White;
                buttonColour.Height = new Unit(45);
                buttonColour.Click += new EventHandler(ColourClick);
                buttonColour.Text = Colour;
                buttonColour.ButtonType = RadButtonType.SkinnedButton;
                buttonColour.ID = dr["Colour"].ToString() ;
                buttonColour.PressedCssClass = "VariationButtonsColourActive";

                foreach (Control ctrl in phColourButtons.Controls)
                {
                    if (ctrl is RadButton)
                    {
                        RadButton button = (RadButton)ctrl;
                        if (buttonColour.ID == button.ID)
                        {
                            ColourExists = ColourExists + 1;
                        }
                    }
                }

                if (ColourExists == 0)
                {
                    phColourButtons.Controls.Add(buttonColour);
                    Label spacer = new Label();
                    spacer.Width = new Unit(15);
                    spacer.Text = "  ";

                    phColourButtons.Controls.Add(spacer);
                }


                //Create Size Button
                RadButton buttonSize = new RadButton();
                buttonSize.EnableEmbeddedBaseStylesheet = false;
                buttonSize.EnableEmbeddedSkins = false;
                buttonSize.CssClass = "VariationButtonsSize";
                buttonSize.BackColor = System.Drawing.Color.White;
                buttonSize.Height = new Unit(45);
                buttonSize.Click += new EventHandler(SizeClick);
                buttonSize.Text = Size;
                buttonSize.ButtonType = RadButtonType.SkinnedButton;
                buttonSize.ID = dr["Size"].ToString();
                buttonSize.PressedCssClass = "VariationButtonsSizeActive";


                foreach (Control ctrl in phSizeButtons.Controls)
                {
                    if (ctrl is RadButton)
                    {
                        RadButton button = (RadButton)ctrl;
                        if (buttonSize.ID == button.ID)
                        {
                            SizeExists = SizeExists + 1;
                        }
                    }
                }

                if (SizeExists == 0)
                {
                    phSizeButtons.Controls.Add(buttonSize);
                    Label spacer = new Label();
                    spacer.Width = new Unit(15);
                    spacer.Text = "  ";
                    phSizeButtons.Controls.Add(spacer);
                }

如果有人能解释为什么第二个占位符不起作用,那就太好了。

除了缺少重用之外,您发布的内容看起来一切正常。可能的原因有两个:第一个容器的div中第二个按钮上方的div可能重叠(检查broswer dev工具中的元素),或者第二个事件处理程序(未显示)中的某些内容出错。我检查了源代码,甚至为所有div添加了一个边框,以尝试查看是否显示任何内容。但还是什么都没有。如前所述,如果我将按钮添加到第一个占位符中,按钮将被激活。只是添加到第二个时没有。是的,我知道,我对代码的重用正在加速。英雄联盟