C# 在ASP.NET中动态添加用户控件
我知道这个问题被问了很多次,但我的问题还是没有解决 我试图迭代对象列表,并用该对象填充模板“用户控件”, 类似于搜索的结果列表 在这些用户控件中有一个链接按钮,该按钮应重定向到另一个页面, 当我点击链接按钮时,什么也没发生,我用谷歌搜索了一下,但没有令人满意的答案 下面是代码,我将用按钮而不是用户控件来说明:C# 在ASP.NET中动态添加用户控件,c#,asp.net,events,dynamic,user-controls,C#,Asp.net,Events,Dynamic,User Controls,我知道这个问题被问了很多次,但我的问题还是没有解决 我试图迭代对象列表,并用该对象填充模板“用户控件”, 类似于搜索的结果列表 在这些用户控件中有一个链接按钮,该按钮应重定向到另一个页面, 当我点击链接按钮时,什么也没发生,我用谷歌搜索了一下,但没有令人满意的答案 下面是代码,我将用按钮而不是用户控件来说明: protected override void OnInit(EventsArgs e) { for(int i=0;i<10;i=i+1) { Butt
protected override void OnInit(EventsArgs e)
{
for(int i=0;i<10;i=i+1)
{
Button b = new Button();
b.ID = "Button" + i;
b.Click += new System.EventHAndler(this.Button_OnClick);
Controls.Add(b);
}
base.OnInit(e);
}
private void Button_OnClick(object Sender,System.EventsArgs e)
{
Response.Redirect("~/Some.aspx");
}
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
受保护的覆盖无效OnInit(事件)
{
对于(inti=0;i试试这个
for (int i = 0; i < 10; i = i + 1)
{
Button b = new Button();
b.ID = "Button" + i;
b.Click += new EventHandler(b_Click);
Controls.Add(b);
}
void b_Click(object sender, EventArgs e)
{
//some code
}
for(int i=0;i<10;i=i+1)
{
按钮b=新按钮();
b、 ID=“按钮”+i;
b、 单击+=新建事件处理程序(单击);
增加(b);
}
无效b_单击(对象发送者,事件参数e)
{
//一些代码
}
该按钮永远不会启动,因为它不是服务器窗体控件的子控件
如果还没有表单控件,则需要添加它:
<form id="form1" runat="server">
</form>
与
使用Page_Init而不是OnInit
在创建按钮之前调用base.OnInit也可能会起作用。我没有发现您的示例中有任何错误,您可以发布实际代码吗?我刚刚编辑了代码,这就是我现在要做的,我希望新按钮触发事件。我正在使用VerifyRenderingInServerForm方法,否则会出现错误。是的,我已经在这样做了,但是它从来没有达到那种方法。我应该确切地把它放在哪里?在那之后还是之前?它起作用了:)非常感谢,我挣扎了三天。
Controls.Add(b);
form1.Controls.Add(b);