1
我有一個簡單的UserControl,我創建,只是允許用戶輸入日期。目前,它有一個ID =「tbDate」的單個文本框。我試圖通過(例如)placeholder.Controls.Add(LoadControl())
多次動態添加此控件,但接收到錯誤「已存在具有相同密鑰的條目」。也許我可以改變元素的ID,但是很難抓住用戶輸入的值。
有沒有人有這個想法?動態添加相同的UserControl多次
謝謝!
我有一個簡單的UserControl,我創建,只是允許用戶輸入日期。目前,它有一個ID =「tbDate」的單個文本框。我試圖通過(例如)placeholder.Controls.Add(LoadControl())
多次動態添加此控件,但接收到錯誤「已存在具有相同密鑰的條目」。也許我可以改變元素的ID,但是很難抓住用戶輸入的值。
有沒有人有這個想法?動態添加相同的UserControl多次
謝謝!
我生成一個唯一標識符作爲我創建的Component類的一部分,然後將該值用作Control.ID。您可以以任何方式生成此唯一值,但我將它作爲數據庫表的一部分進行存儲。最後它並不重要,因爲當類實例化時,值在應用程序的整個運行過程中被初始化並保持一致。
類有一個私有的實例變量:
private Control _control;
當添加控件到窗體(和,特別是,佔位符),我做類似的東西了這一點。請注意,c
引用我創建的類。
c.Control.ID = c.ComponentName + c.UniqueIdentifier;
phHere.Controls.Add(c.Control);
然後,當我需要在稍後的點來引用控制I基本上反向執行上述步驟:
string component = c.ComponentName + c.UniqueIdentifier;
UserControl uc = (UserControl)ph.FindControl(component);
希望這有助於。如果您有任何問題,請隨時詢問。但問題的根源在於必須設置Control.ID以避免錯誤。
謝謝
你有沒有與這McArthey有任何進展?我只是遇到了類似的東西:( – Mordy 2011-05-06 14:40:24