【发布时间】:2017-02-02 14:40:53
【问题描述】:
我的应用程序的配置页面上有几个列表,用户可以在其中配置项目的顺序以及特定应用程序页面的选择。我正在使用运行时添加的动态控件的 ID 将它们从 A 移动到 B,但由于我的 JavaScript 未能检索所选控件的 ID,目前这不起作用。
在深入研究并进一步检查后,动态控件没有自动分配 ID 属性,而是将 ID 应用于控件的 name 属性,这就是 JavaScript 失败的原因。
我同时使用动态 HtmlGenericControls 和文本框。
检索 ID 的 JavaScript,当我将 this.id 切换为 this.name 时,它可以工作。但是我需要使用 ID 属性。
document.getElementById('itemID').value = this.id;
'itemID' 是一个隐藏的输入字段。
我已经尝试应用 runat="server", clientidmode="static" / "autoID" 但到目前为止没有运气。
为什么我的动态控件获得分配给名称属性的 ID 而不是 ID 属性?
是否需要添加一些内容才能将其应用于 ID 属性?
如果您需要更多信息,请在下方评论:-)
附加信息
网页正在使用母版页,因此控件被添加到内容占位符中。
我尝试在将 ID 正确添加到属性的 javascript 中设置 ID,但是在执行以下操作时,该项目仍然为空。
this.id = this.name;
TextBox selectedItem = (TextBox)exampleList.FindControl(itemID.Value);
添加后的动态控件示例:
<input name="ctl00$uniqueBody$ctl86" type="text" value="EXAMPLE" runat="server">
如您所见,name 属性包含 ID。
【问题讨论】:
标签: javascript c# asp.net webforms