gpt4 book ai didi

asp.net - 在标签上设置 AssociatedControlID 失败

转载 作者:行者123 更新时间:2023-12-03 22:05:48 25 4
gpt4 key购买 nike

我有一个复合控件,它将一个 TextBox 和一个 Label 控件添加到它的 Controls 集合中。当我尝试将标签的 AssociatedControlID 设置为文本框的 ClientID 时,出现此错误

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

好吧,有一点背景。我得到了这个主复合控件,它动态地将许多“元素”添加到它的控件集合中。其中一个元素恰好是这个“MatrixTextBox”,它是由一个文本框和一个标签组成的控件。

我将 Label 和 TextBox 作为 protected 类变量并在 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 中,两者都产生相同的错误。我做错了什么?

最佳答案

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

应该是这样的:

ElementLabel.AssociatedControlID = ElementTextBox.ID;

希望这会有所帮助。

关于asp.net - 在标签上设置 AssociatedControlID 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com