2010-10-27 134 views

回答

1

一個想法是創建一個按鈕列表,您可以在其中存儲您在btnCreateDynamic_click中創建的按鈕。

你可以像一個方法:

private Button CreateButton(string id, string name) 
     { 
      Button b = new Button(); 
      b.Text = name; 
      b.ID = id; 
      b.Click += new EventHandler(Button_Click); 
      b.OnClientClick = "ButtonClick('" + b.ClientID + "')"; 
      return b; 
     } 

在btnCreateDynamic_click你可以有這樣的:

Button b = CreateButton("dinamicBtn"+myDinamicButtonsList.Count.ToString(),"dinamicBtn"+myDinamicButtonsList.Count.ToString()); 
myDinamicButtonsList.add(b); 

,並在頁面加載,例如,你可以不喜歡

foreach(button btn in myDinamicButtonsList){ 
    form1.Controls.Add(btn)); 
} 

List<Button> myDinamicButtonsList = new List<Button>(); 

myDinamicButtonsList應該存儲在某個地方,以便可以在之後檢索它的位置每個請求。

編輯: 在頁面加載,你可以有這樣的事情:

if(Session["myDinamicButtons"] == null){ 
    List<Button> myDinamicButtonsList = new List<Button>(); 
    Session["myDinamicButtons"] = myDinamicButtonsList; 
} 

foreach(Button btn in Session["myDinamicButtons"] as List<Button>){ 
    form1.Controls.Add(btn)); 
} 

我沒有測試,但它應該工作。

+0

(因爲我不熟悉列表)我可以將按鈕存儲在arraylist而不是List?我試過,但我得到錯誤。你能幫忙嗎? – Prem 2010-10-27 13:15:07

+0

你可以創建這個列表:列表

+0

非常感謝你... !!!有用 – Prem 2010-10-28 04:17:51

2

您在客戶端的按鈕單擊事件將導致頁面回發,該頁面回發將啓動ASP.Net頁面生命週期;在服務器上 alt text

你按一下按鈕事件是PostBackEvent,你應該能夠使用相同的方法調用CreateMyButton()您在加載或初始化事件中使用。