2016-03-03 259 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()。