当前位置:  开发笔记 > 编程语言 > 正文

在标签上设置AssociatedControlID失败

如何解决《在标签上设置AssociatedControlID失败》经验,为你挑选了1个好方法。

我有一个复合控件,它将TextBox和Label控件添加到其Controls集合中.当我尝试将Label的AssociatedControlID设置为Textbox的ClientID时,我收到此错误

Unable to find control with id 
'ctl00_MainContentPlaceholder_MatrixSetControl_mec50_tb'
that is associated with the Label 'lb'. 

好吧有点背景.我得到了这个主复合控件,它动态地向控件集合添加了许多"元素".其中一个元素恰好是这个'MatrixTextBox',它是由TextBox和Label组成的控件.

我将Label和TextBox保存为受保护的类变量,并在CreateChildControls中初始化它们:

    ElementTextBox = new TextBox();
    ElementTextBox.ID = "tb";
    Controls.Add(ElementTextBox);

    ElementLabel = new Label();
    ElementLabel.ID = "lb";
    Controls.Add(ElementLabel);

我试过设置

ElementLabel.AssociatedControlID = ElementTextBox.ClientID;

将控件添加到Controls集合后,甚至在PreRender中,两者都产生相同的错误.我究竟做错了什么?



1> splattne..:

我认为你不能使用 ElementTextBox 的ClientID属性,而是ID.ClientID是您必须在Javascript中使用的页面唯一ID,例如在document.getElementyById中,并且与服务器端ID不同 - 特别是如果您在控件中有主页和/或控件等.

所以它应该是:

ElementLabel.AssociatedControlID = ElementTextBox.ID;

希望这可以帮助.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有