我使用下面的代码在后面的代码中添加LinkButton
但是当我点击每个链接按钮时,点击事件不会调用,但如果我删除if(!IsPostBack)
正常工作
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.sr();
}//if
}
void sr()
{
LinkButton lnk;
for (int i =1; i < 6; i++)
{
lnk = new LinkButton();
lnk.ID="lnk"+i.ToString();
lnk.Text = i.ToString() + " ";
lnk.Click += new EventHandler(lnk_Click);
this.pnl.Controls.Add(lnk);
}
}
void lnk_Click(object sender, EventArgs e)
{
LinkButton lnk = (LinkButton)sender;
lnk.Text = "Clicked";
}
答案 0 :(得分:0)
您正在动态创建 linkButton 。
你必须在 Page_Init 函数中调用sr(),如...
void Page_Init(object Sender, System.EventArgs e)
{
sr();
}
答案 1 :(得分:0)
在向页面动态添加控件时,必须在每次加载页面时添加它们。理想情况下,这应该在Page初始化事件中完成。当你删除!Page.IsPostBack条件时,这就是你的代码工作的原因。
答案 2 :(得分:0)
您的函数被调用两次,因为它包含在page_load和page_init中。 从page_load中删除它。 回发将始终查找发生的更改并尝试重新构建页面,以便每次都重建您的代码后面的控件。