C# asp按钮单击后隐藏

C# asp按钮单击后隐藏,c#,asp.net,C#,Asp.net,我使用代码隐藏创建了一个简单的asp按钮。我成功地在网页上添加了这个按钮,它在网页上显示给我,但当我点击按钮时遇到了一个问题,然后发回网页上隐藏的按钮。请帮我解决这个问题。 这是我的密码: protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { CreateButton(); } } protected void CreateButton() { Button

我使用代码隐藏创建了一个简单的asp按钮。我成功地在网页上添加了这个按钮,它在网页上显示给我,但当我点击按钮时遇到了一个问题,然后发回网页上隐藏的按钮。请帮我解决这个问题。 这是我的密码:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        CreateButton();
    }
}
protected void CreateButton()
{
    Button btn = new Button();
    btn.ID = "newDynamicBtn";
    btn.Text = "Click Me";
    //btn.Attributes.Add("runat", "server");
    //btn.Attributes.Add("onClick", "newDynamicBtn_Click");
    //btn.OnClientClick = "return confirm('are you sure ?')";
    btn.Click += newDynamicBtn_Click;
    form1.Controls.Add(btn);
}
protected void newDynamicBtn_Click(object sender, EventArgs e)
{
    Response.Write(@"<script>alert('Hello')</script>");
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
CreateButton();
}
}
受保护的void CreateButton()
{
按钮btn=新按钮();
btn.ID=“newDynamicBtn”;
btn.Text=“单击我”;
//添加(“runat”、“server”);
//添加(“onClick”、“newDynamicBtn_Click”);
//btn.OnClientClick=“返回确认('您确定吗?')”;
btn.Click+=newDynamicBtn\u单击;
表1.控件添加(btn);
}
受保护的void newDynamicBtn\u单击(对象发送方,事件参数e)
{
回复。写(@“警报('Hello')”);
}

正如Vishnu Prasad在评论中所说,由于(!isPostBack)的条件,您的代码仅在页面第一次加载时创建按钮。
如果希望每次按钮调用后按钮都出现在页面中,则只需删除该条件即可。每次按钮调用时,按钮也会运行页面加载事件。如果希望每次按钮都显示,则必须执行该功能

CreateButton()不带任何条件(!postBack)

范例

protected void Page_Load(object sender, EventArgs e)
{
        CreateButton();
}


protected void CreateButton()
{
    Button btn = new Button();
    btn.ID = "newDynamicBtn";
    btn.Text = "Click Me";
    //btn.Attributes.Add("runat", "server");
    //btn.Attributes.Add("onClick", "newDynamicBtn_Click");
    //btn.OnClientClick = "return confirm('are you sure ?')";
    btn.Click += newDynamicBtn_Click;
    form1.Controls.Add(btn);
}
protected void newDynamicBtn_Click(object sender, EventArgs e)
{
    Response.Write(@"<script>alert('Hello')</script>");
}
受保护的无效页面加载(对象发送方,事件参数e)
{
CreateButton();
}
受保护的void CreateButton()
{
按钮btn=新按钮();
btn.ID=“newDynamicBtn”;
btn.Text=“单击我”;
//添加(“runat”、“server”);
//添加(“onClick”、“newDynamicBtn_Click”);
//btn.OnClientClick=“返回确认('您确定吗?')”;
btn.Click+=newDynamicBtn\u单击;
表1.控件添加(btn);
}
受保护的void newDynamicBtn\u单击(对象发送方,事件参数e)
{
回复。写(@“警报('Hello')”);
}
上述代码的目的是检查是否第一次请求页面。 如果页面是第一次被请求的,那么If条件中的代码会被执行,否则不会。这就是为什么第二次没有看到按钮的原因


在if条件之外调用createButton()。

createButton
方法是
PostBack
时不调用该方法。将其置于
if
条件之外,然后它将在页面加载时删除if条件。谢谢@VishnuPrasad
if(!IsPostBack)