如何根据迭代次数获得控件

How to get controls depending upon the iteration count?

本文关键字:控件 何根 迭代      更新时间:2023-09-26

我想根据迭代次数动态获取clientId,例如

var clientID = "<%=NumericTextBox" + 1 + ".ClientID %>";
var id = document.getElementById(clientID);

但是,如果我试图使用上面的语句来获取它抛出的控件";expected"、")expected)错误,那么获取控件的正确方法是什么?

我认为你在asp.net中有数字文本框控件。如果你需要获得它的id,你可以使用

var clientId = '<%= NumericTextBox.ClientId %>';
var txt = document.getElementById(clientId);

如果文本框在网格控件内,通常会像一样将数字附加在末尾或开头

var clientId = 'ctl_0' + i + '<%= NumericTextBox.ClientId %>'

您可以通过查看源代码来检查框架正在呈现的id。

我不知道您使用的是什么服务器端语言和模板引擎,但我认为您使用错误,这就是导致错误的原因。在大多数语言中,这将解析为执行以下代码的服务器端模板指令:

NumericTextBox " + 1 + " .ClientID

这在大多数语言中都是无稽之谈,在我所知道的任何语言中都像是一个错误。(它实际上可能是有效的Ruby,但可能不是正确的Ruby,因为Strings通常没有ClientID方法。)

var clientID = '<%=FindControl("NumericTextBox" + "1").ClientID%>';
var id = document.getElementById(clientID);