我知道这个问题被多次询问,但我的问题仍未解决,
我正在尝试迭代对象列表,并用该对象填充模板“用户控件”, 比如搜索结果列表。
在这些用户控件中有一个linkButton应该重定向到另一个页面, 当我点击那个链接按钮没有任何反应时,我用Google搜索但没有令人满意的答案。
这里是代码,我将使用按钮而不是用户控件进行说明:
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;
}
它从不调用Button_OnClick方法。
提前致谢。
答案 0 :(得分:2)
该按钮永远不会触发,因为它不是服务器表单控件的子节点。
如果还没有表单控件,则需要添加它:
<form id="form1" runat="server">
</form>
并替换
Controls.Add(b);
使用
form1.Controls.Add(b);
答案 1 :(得分:0)
试试这个
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
}
答案 2 :(得分:0)
使用Page_Init而不是OnInit。
在创建按钮之前调用base.OnInit也可能有效。