2011-12-30 22 views
0

如果控件(如checkboxlist)是動態創建的。 這樣如何爲動態創建的控件指定Ajax更新面板的ControlID屬性

CheckBoxList CbxList = new CheckBoxList(); 

CbxList.ID = "Cbx"; 
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
    CbxList.Items.Add(new ListItem(ds.Tables[0].Rows[i]["Name"] 
     .ToString(), ds.Tables[0].Rows[i]["ID"].ToString())); 
} 
ph.Controls.Add(CbxList); 

如果在創建的CheckBoxList(CBX)如果我更新的AJAX更新面板,我應該如何指定控件ID屬性的selectedIndexChange事件。我曾嘗試Cbx在我的情況下,但它說沒有控制和偏離該控制尚未創建。所以如何處理這個問題

+0

你真的會在做自己,以及任何未來的維護程序員通過使用變量名遵循標準的名稱約定,並將這個'Add()'分成不同的步驟。 – asawyer 2011-12-30 13:26:46

回答

0

我能想到的唯一需要控制ID的就是觸發器集合;如果是這種情況,爲什麼不把checkboxlist放在updatepanel中,並在面板上使用updatemode =「always」?

+0

你給出的好主意。我會試一試,但結果是頁面結構非常複雜,因爲我必須將整個頁面放在更新面板中。所以出於這個原因,我問在論壇上,可以 動態更改 – Shah 2011-12-31 05:09:36

+0

您可以更改ID;我不確定UpdatePanel是否通過狀態保留它,所以你不得不在每一次回傳中改變它。它只能從服務器更改... – 2011-12-31 18:26:05

0

如果我理解你的問題,你想每個複選框有一個ID? 在這種情況下,請勿使用CheckBoxList,而應使用佔位符,並將CheckBox控件添加到它。然而,我認爲你這樣做的方式,他們應該得到如'Cbx_0','Cbx_1'等ID ...

相關問題