动态添加相同的USERCORTROL多次
-
26-10-2019 - |
题
我有一个简单的USERCONTROL,我创建了一个简单的用户,仅允许用户输入日期。目前,它具有一个带有ID =“ tbdate”的文本框。我正在尝试通过(例如)多次动态添加此控件 placeholder.Controls.Add(LoadControl())
但是正在收到“已经存在相同密钥的条目”的错误。也许我可以更改元素的ID,但是很难抓住用户输入的值。
有人对此有任何想法吗?
谢谢!
解决方案
我生成一个唯一的标识符作为我创建的组件类的一部分,然后将该值用作control.id。您可以以任何想要的方式生成此唯一值,但是我将其存储为数据库表的一部分。最后,这并不重要,因为当类实例化时,在应用程序的整个运行过程中,值将初始化并保持一致。
该类有一个私人实例变量:
private Control _control;
在将控件添加到表单中(尤其是占位符)时,我会做一些与此相似的事情。注意 c
参考我创建的类。
c.Control.ID = c.ComponentName + c.UniqueIdentifier;
phHere.Controls.Add(c.Control);
然后,当我需要在以后引用控件时,我基本上扭转了上述步骤:
string component = c.ComponentName + c.UniqueIdentifier;
UserControl uc = (UserControl)ph.FindControl(component);
希望这会有所帮助。如果您有任何疑问,请随时提出。不过,问题的根源是必须设置控件。ID以避免错误。
谢谢
不隶属于 StackOverflow