单击后按下asp按钮

时间:2016-03-03 07:32:17

标签: c# asp.net

我使用后面的代码创建了一个简单的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>");
}

3 个答案:

答案 0 :(得分:1)

每次按钮调用时它也会运行Page_Load事件,如果你想每次按钮显示那么你必须要做功能

  

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

答案 1 :(得分:0)

正如Vishnu Prasad在评论中所说,由于条件if(!isPostBack),您的代码仅在页面首次加载时创建按钮。 如果您希望按钮在回发后显示在页面中,则只需删除该条件

答案 2 :(得分:0)

if(!IsPostBack)

上述代码的目的是检查页面是否是第一次请求。 如果第一次请求页面,则if条件内的代码将执行,否则为no。这就是你第二次没有看到按钮的原因。

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