我使用asp.net WebForms从后面的代码页手动创建了按钮。 这是创建代码:
Button myButton = new Button();
myButton.ID = "b" + arrcodes[i];
myButton.Text = "Buy Now!";
myButton.CssClass = "btn-primary";
myButton.Click += new EventHandler(myButton_Click);
myPlaceHolder.Controls.Add(myButton);
我用谷歌搜索了如何在stackoverflow中添加onClick函数和使用的方法。但是这种方法不起作用..函数" myButton_Click"按下按钮时没有激活。
protected void myButton_Click(object sender, EventArgs e)
{ // my code }
我做错了吗?
答案 0 :(得分:1)
您需要在回发中重新加载动态创建的按钮,并在Page_Init
或Page_Load
事件中使用相同的ID。
否则,它不会出现在控制树中,并且无法触发Click事件。
例如,
public partial class Default : System.Web.UI.Page
{
protected void Page_Init()
{
CreateButton();
}
protected void myButton_Click(object sender, EventArgs e)
{
}
private void CreateButton()
{
Button myButton = new Button();
myButton.ID = "b1";
myButton.Text = "Buy Now!";
myButton.CssClass = "btn-primary";
myButton.Click += new EventHandler(myButton_Click);
myPlaceHolder.Controls.Add(myButton);
}
}
答案 1 :(得分:0)
通常,更好的选择是创建按钮并切换它的可见性。
如果您确实需要动态创建它,请确保在OnInit方法中创建按钮以使事件处理程序正常工作。