1

我今天用谷歌搜索了很多,但没有找到任何有用的答案来解决我的问题。

我有一个 Web 自定义控件 (CustomControl1),它调用另一个 Web 自定义控件 (CustomControl2),如下所示:

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);  

        for (int i= 0; i < 2; i++)
        {
             Panel pn = new Panel();

             Controls.Add(pn);

             CustomControl2 ct2= new CustomControl2();
             ct2.ID = "CustomControl2";

             pn.Controls.Add(rowControl);
        }
    }

我认为每次创建 CustomControl2 时,都会将 ID 指定为 {parentId} +“CustomControl2”,但事实并非如此,因此,我得到“找到 ID 为 CustomControl2 的多个控件”。我知道我可以使 CustomControl2 Id 唯一,但我不明白为什么 Id 没有嵌入到父 Id 中。

感谢您的任何反馈!

4

1 回答 1

0

只需要我自己做,结果你所要做的就是INamingContainer在你的 web 控件上实现“标记”接口。这将导致 .net 为您的控件的每个实例生成一个 ID 命名空间(这意味着所有子控件都将根据需要以父控件的 ID 为前缀)。

于 2013-10-22T14:44:06.770 回答