我正在创建大量的动态控件,并且对于必须分配ID的所有内容,我使用保证的唯一变量对其进行分配(除非来自just controls的64位溢出)。如何找到我有一个重复的控制ID(C#)
现在,我有一个问题,虽然。我有一个复制控件某处,我无法发现它被添加的位置或任何东西,因为直到Page_Load之后它才会发生,这意味着当抛出异常时它不在我自己的代码中(我认为像Render一样或其他一些内部功能)。
控件名称是“ctlXXX”,其中XXX是一个数字(现在,始终为244)此控件ID为而不是由我制作。它由ASP.Net自动生成(因为我的ID都没有以ctl作为前缀)。那么,如何纠正我看不到的这个错误?任何人都可以提出找到我的错误的方法(我真的希望这不是ASP.Net中的错误)?
此外,最近我通过使用复制函数会在自定义控件上执行成员复制,然后它将重置任何控件以具有唯一ID或为null,因为此部分发生之前控件加载到自定义控件中,这是Panel的后代)
任何人都可以给我如何找到此错误的建议?
好的,这有助于一些。现在,我实际上得到了一个关于我自己的控件被重复的错误(这仍然不应该发生),所以我将不得不挖掘更多一点.. – Earlz 2009-09-10 18:09:54
嗯..现在,我得到控件未找到..所以我将不得不弄清楚如何将我的代码转换为使用此代码,同时允许控件之间存在一些名称... – Earlz 2009-09-10 18:13:17
您需要更改对FindControl()的调用才能在INamingContainer的父实例上调用。换句话说,调用FindControl来查找容器,然后再次找到控件。 – 2009-09-11 16:26:06