我在应用程序的配置页面上有几个列表,用户可以配置项目的顺序以及特定应用程序页面的选择。我使用在运行时添加的动态控件的ID将它们从A移动到B,但目前这不起作用,因为我的JavaScript无法检索所选控件的ID。动态控件“ID”自动添加到“名称”属性中,而不是ID属性
深入挖掘并进一步检查后,动态控件没有自动分配ID属性,而是将ID应用于控件的name属性,这就是JavaScript失败的原因。
我使用动态HtmlGenericControls和Textboxes。
检索ID的JavaScript,它在我将this.id切换到this.name时起作用。不过,我需要使用ID属性。
document.getElementById('itemID').value = this.id;
'itemID'是隐藏的输入字段。
我试过应用runat =“server”,clientidmode =“static”/“autoID”,但目前还没有运气。
为什么我的动态控件将ID分配给name属性而不是ID属性?
有什么缺失,我需要添加它使它适用于ID属性?
如果您需要更多的信息,下面:-)只是评论
的网页使用母版页
附加信息,所以控件内容占位符中添加的。
我已经尝试在JavaScript中将ID添加到属性中,但在执行以下操作时仍然为null。添加后的动态控制的
this.id = this.name;
TextBox selectedItem = (TextBox)exampleList.FindControl(itemID.Value);
实施例:
<input name="ctl00$uniqueBody$ctl86" type="text" value="EXAMPLE" runat="server">
正如你可以看到的name属性保持的ID。
谢谢,我已经做到了这一点,并设法解决了这个问题所以我将这个标记为答案,但是,这正是我想要避免的,因为如果我不使用set ID,它会使一切变得更简单。 – Chris