我有一个小页面,上面有一个按钮:
<asp:Button runat="server" ID="btnSave" CssClass="myButton" Text="Save" OnClick="btnSave_Click" />
此按钮执行方法,即向页面添加antoher按钮
protected void btnSave_Click(object sender, EventArgs e)
{
/*
* Add a add button
*/
Button btnAdd = new Button();
btnAdd.ID = "btnAdd";
btnAdd.Attributes.Add("class", "myLoginButton");
btnAdd.Attributes.Add("style", "position:relative; left:10px");
btnAdd.Text = "Add User";
btnAdd.Click += new EventHandler(btnAdd_Click);
placeHolderUsers.Controls.Add(btnAdd);
}
我想要第二个按钮来执行此方法:
protected void btnAdd_Click(object sender, EventArgs e)
{
debugLabel.Text = "hello im clicked";
}
一切都与第二个按钮完美配合。它的文本设置,它的位置是正确的,......唯一不起作用的是点击。如果我单击该按钮,我的页面就像刷新一样。只会再次显示第一个按钮。
我不知道为什么......
提前致谢!
答案 0 :(得分:1)
您的代码的问题在于您在另一个按钮点击处理程序中添加动态按钮,即btnSave_Click
,并且在每个页面加载时,动态控件都会丢失。
请注意,您必须在回发后添加动态控件,因为每次控件都会丢失。您需要在Page_Load
或Page_Init
事件中添加: -
protected void Page_Load(object sender, EventArgs e)
{
Button btnAdd = new Button();
btnAdd.ID = "btnAdd";
btnAdd.Attributes.Add("class", "myLoginButton");
btnAdd.Attributes.Add("style", "position:relative; left:10px");
btnAdd.Text = "Add User";
btnAdd.Click += new EventHandler(btnAdd_Click);
placeHolderUsers.Controls.Add(btnAdd);
}
您可以查看文档以添加动态控件here。