按钮仅刷新边

时间:2015-12-04 13:57:48

标签: c# asp.net button

我有一个小页面,上面有一个按钮:

<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";
    }

一切都与第二个按钮完美配合。它的文本设置,它的位置是正确的,......唯一不起作用的是点击。如果我单击该按钮,我的页面就像刷新一样。只会再次显示第一个按钮。

我不知道为什么......

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的代码的问题在于您在另一个按钮点击处理程序中添加动态按钮,即btnSave_Click,并且在每个页面加载时,动态控件都会丢失。

请注意,您必须在回发后添加动态控件,因为每次控件都会丢失。您需要在Page_LoadPage_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