我试图动态添加LinkButton
这是html代码:
<div id="resultDivText" runat="server">
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
</asp:PlaceHolder>
</div>
这是c#代码
LinkButton lb = new LinkButton();
lb.Text = songName + "</br>"; //LinkButton Text
lb.ID = song.Key.ToString(); // LinkButton ID’s
lb.CommandArgument = Convert.ToString(song.Key);
lb.CommandName = Convert.ToString(song.Key);
lb.Click += new EventHandler(test_Click);
this.form1.Controls.Add(lb);
PlaceHolder1.Controls.Add(lb);
这就是&#34; test_Click&#34;功能
protected void test_Click(object sender, EventArgs e)
{
showAllSong("let it be");
}
当我运行代码时,它会显示linkButton列表,但是当我点击它时没有任何反应。
答案 0 :(得分:1)
试试这段代码..
static bool enable = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DynamicButton();
}
else if (enable)
{
DynamicButton();
}
}
protected void btnBindMapping_Click(object sender, EventArgs e)
{
enable = true;
DynamicButton();
}
protected void DynamicButton()
{
LinkButton lb = new LinkButton();
lb = new LinkButton();
lb.Text = songName + "</br>"; //LinkButton Text
lb.ID = song.Key.ToString(); // LinkButton ID’s
lb.CommandArgument = Convert.ToString(song.Key);
lb.CommandName = Convert.ToString(song.Key);
lb.Click += new EventHandler(test_Click);
this.form1.Controls.Add(lb);
PlaceHolder1.Controls.Add(lb);
}
protected void test_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('done'); </script>");
}
答案 1 :(得分:0)
你的代码很好..它按预期工作..但是改变这一行
this.form1.Controls.Add(lb);
到
this.Controls.Add(lb);
注意:它回发到您的服务器而不是客户端事件
答案 2 :(得分:0)
由于您在LinkButton中使用CommandName
和CommandArgument
,因此您必须委派Command
而不是Click
。
lb.Command += new CommandEventHandler(test_Click);
protected void test_Click(object sender, CommandEventArgs e)
{
Response.Write(e.CommandArgument + "<br>" + e.CommandName);
}
然后删除第this.form1.Controls.Add(lb);
行
这个问题并不清楚,但每次加载页面时都必须创建该按钮,其中包括PostBack。
答案 3 :(得分:0)
详细说明你没有提及。何时创建此动态按钮。
因为这可能会产生问题。
如果您在页面加载事件中调用c#代码,那么它可以正常工作。
LinkButton lb = new LinkButton();
lb = new LinkButton();
lb.Text = songName + "</br>"; //LinkButton Text
lb.ID = song.Key.ToString(); // LinkButton ID’s
lb.CommandArgument = Convert.ToString(song.Key);
lb.CommandName = Convert.ToString(song.Key);
lb.Click += new EventHandler(test_Click);
this.form1.Controls.Add(lb);
PlaceHolder1.Controls.Add(lb);
如果该按钮在oninit或onload事件上动态创建,则它可以正常工作。