我想在运行时使用C#向我的aspx Web表单添加控件 我想写一个通用函数,它将创建任何类型的控件(例如:文本框,标签,按钮等)。
请任何想法。 谢谢 BB
答案 0 :(得分:3)
我想你可以这样做:
public void CreateControl<W>(Func<W> controlConstructor) where W : WebControl
{
W control = controlConstructor();
//add control and configure it, etc etc
}
答案 1 :(得分:2)
只要您要使用的控件类型都具有默认构造函数,就可以执行此操作。
T AddControl<T>() where T : WebControl, new()
{
T ctrl = new T();
...
return ctrl;
}
答案 2 :(得分:2)
将TextBoxes控件添加到占位符
private void CreateTextBoxes()
{
for (int counter = 0; counter <= NumberOfControls; counter++)
{
TextBox tb = new TextBox();
tb.Width = 150;
tb.Height = 18;
tb.TextMode = TextBoxMode.SingleLine;
tb.ID = "TextBoxID" + (counter + 1).ToString();
// add some dummy data to textboxes
tb.Text = "Enter Title " + counter;
phTextBoxes.Controls.Add(tb);
phTextBoxes.Controls.Add(new LiteralControl("<br/>"));
}
}
在CreateTextBoxes方法中,我循环遍历我们想要在phTextBoxes占位符中动态创建的'n'个控件。