2012-03-25 88 views
2

我創建了一個頁面,我給管理員的方式來更改照片信息(例如標題,說明等)頁面上的所有控件都動態添加,因爲我有多個照片庫。動態添加按鈕到面板並獲得它的父ID

  1. panel - > parent。

  2. 按鈕。

  3. 標題文本框。

  4. 描述文本框。

在每個面板中,我有一個按鈕,單擊時,將更改的信息發送到存儲照片信息的服務器(Flickr)。此按鈕的點擊事件是動態添加的,我想知道是否可以獲取我剛剛單擊的Button的父級。

這裏是我加我的所有控件的代碼:

//global veriables (this is only part of the code) 
Panel panel; 
Button button; 
for (int i = 0; i < photo.Length; i++) { 
    photo[i] = new FlickerImages(photoSet.MediumURLS[i], photoSet.ThumbnailURLS[i], photoSet.Titles[i], photoSet.Descreption[i]); 

    panel = new Panel(); 
    panel.ID = "panel" + i; 

    button = new Button(); 
    button.ID = "sendDataButton" + i; 
    button.Text = "send data"; 
    button.Click += button_Click; //adding the event 

    label = new Label(); 
    label.ID = "editLabel" + i; 

    panel.Controls.Add(label); 
    panel.Controls.Add(photo[i].CurrentImage(i)); //Image control 
    panel.Controls.Add(photo[i].EditTitleTextBox(i)); //TextBox control 
    panel.Controls.Add(photo[i].EditCommentTextBox(i)); //TextBox control 
    panel.Controls.Add(button); 

    Form.Controls.Add(panel); 
} 

這裏的單擊事件我添加到所有的按鈕:

void button_Click(object obj, EventArgs e) { 
    Response.Write(button.Parent.ID); // i get panel10 every time this get fired. 
} 

我知道這是可能使用jQuery,但有可能獲得ASP.NET中的按鈕ID?

對不起,我的英語,謝謝你的幫助。

回答

1

不確定,但您是否在尋找ClientID屬性? (button.Parent.ClientID

編輯:

您應該引用發送按鈕,在事件處理程序:

void button_Click(object obj, EventArgs e) 
{ 
    Response.Write(((Button)obj).Parent.ID); 
} 
+0

我只是去嘗試,我也得到相同的結果(panel10)任何其他的想法? – samy 2012-03-25 16:22:46

+0

您要查找的結果是什麼? – Ropstah 2012-03-25 16:25:09

+0

結果應該由按鈕id名稱的父級更改。 – samy 2012-03-25 16:27:35