0
我有一個用戶控件,動態加載其他用戶控件。問題是回發時我的控件不存在。現在我的印象是我不得不重新初始化它們。動態用戶控件回發初始化
現在要做到這一點,因爲他們是UserControls並使用ascx文件UserControl的控件都沒有在空構造函數中初始化。
問題:我該如何加載UserControl的ascx文件?
目前,我試圖做這樣的:
for (int i = 0; i < count; i++)
{
Control ctrl;
if(ctrlCollectionType.Rows[i]["Type"] is UserControl)
ctrl = LoadControl((string)ctrlCollectionType.Rows[i]["Path"]);
else
this.LoadControl(ctrlCollectionType[i]["Type"], null);
ctrl.ID = i;
pnlContent.Controls.Add(ctrl);
}
哪裏ctrlCollectionType是用戶控件的類型。
編輯:解決方案根據Joel Coehoorn的意見。
從最佳實踐的角度來看,你會是對的,出於好奇心,保存控件ID的最佳方式是什麼? – Highstead
ClientID或只是普通的服務器端ID?如果它是服務器ID,那麼只要確保在創建它時的回發中以相同的方式進行設置即可。 –
那麼問題是用戶能夠選擇動態添加的控件,所以我不能指望以同樣的方式創建它。 – Highstead