2016-03-03 166 views
1

我使用后面的代码创建了一个简单的asp按钮。我成功地在页面上添加了这个按钮,并且它在网页上显示我,但是当我点击按钮然后发回按钮隐藏在网页上时,我遇到了问题。请帮我解决这个问题。 这里是我的代码:点击后隐藏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>"); 
} 
+2

当CreateButton方法是PostBack时,不会调用CreateButton方法。把它放在'if'条件之外,然后它会起作用 –

+0

我在页面加载时删除了if条件。谢谢@VishnuPrasad – Macwin

回答

0

正如普拉萨德毗湿奴的评论说,你的代码仅创建按钮的第一次,因为条件if(!isPostBack)加载页面。 你只需要删除该条件,如果你想你的按钮出现在页面后回发

1

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

CreateButton()无(!回发)

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>"); 
} 
0
的任何条件

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

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