asp.net c#页面上有多个占位符和多个动态按钮
我正在创建动态按钮,并将唯一按钮添加到两个不同的占位符中。单击事件已正确添加到每个按钮,但按钮单击事件未在第二个占位符上触发。如果我将按钮更改为仅添加到1占位符,则它们都会正确触发。我可以改变周围的事物来绕过这个问题,但我很好奇为什么第二个占位符是个问题。代码如下: 代码隐藏:asp.net c#页面上有多个占位符和多个动态按钮,c#,asp.net,C#,Asp.net,我正在创建动态按钮,并将唯一按钮添加到两个不同的占位符中。单击事件已正确添加到每个按钮,但按钮单击事件未在第二个占位符上触发。如果我将按钮更改为仅添加到1占位符,则它们都会正确触发。我可以改变周围的事物来绕过这个问题,但我很好奇为什么第二个占位符是个问题。代码如下: 代码隐藏: //Create Colour Button RadButton buttonColour = new RadButton();
//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添加了一个边框,以尝试查看是否显示任何内容。但还是什么都没有。如前所述,如果我将按钮添加到第一个占位符中,按钮将被激活。只是添加到第二个时没有。是的,我知道,我对代码的重用正在加速。英雄联盟