嗨我想写一个javascript生成<%= element.ClientID% >
其中element是函数的输入参数之一。我试图写一个变量如何使用JavaScript字符串动态创建'<%= ... ClientID%>'?
var elementName = "<%=" + element + ".clientID%>"
这是给了一个错误
CS0117:“串”不包含“clientID的”一个 定义
嗨我想写一个javascript生成<%= element.ClientID% >
其中element是函数的输入参数之一。我试图写一个变量如何使用JavaScript字符串动态创建'<%= ... ClientID%>'?
var elementName = "<%=" + element + ".clientID%>"
这是给了一个错误
CS0117:“串”不包含“clientID的”一个 定义
这将引发错误因为服务器端处理<%%>标签首先发生。然后,结果以文本形式输出,在这种情况下为JavaScript。所以,服务器看到这个<%=" + element + ".clientID%>
并且抛出一个错误,因为它不能理解。假定字符串" + element + "
是其上调用的值.clientID
。
有两种方法可以解决这个问题。
选项1:输出所有的ID
使元素的所有可能值的哈希值。如果你不止一对,这种方法可能不适合你。
var elements = [
coolbutton: '<%= coolbutton.ClientId %>',
simplebutton: '<%= simplebutton.ClientId %>',
otherbutton: '<%= otherbutton.ClientId %>'
];
然后你就可以这样做,得到的ID:
var elementId = elements[element];
选项2:使用完,有
如果你可以使用jQuery,再有就是指简便方法通过ID到ASP.Net控件。实质上,所有ASP.Net ID都以您在代码中使用的实际变量名结束。所以,如果你有一个名为CoolButton的元素,你可以找到它在JavaScript中,使用jQuery,就像这样:
var element = $('[id$=CoolButton]');
的$ =的操作装置末端,与。因此,它会查找页面上具有以CoolButton结尾的ID的所有元素。页面上的ASP.Net控件的实际ID将会很长,但总是会以类似NamingContainer$CoolButton
的结尾结束。
如果你不能使用jQuery,你可以自己写这个逻辑。
function findByIdEndsWith(endId) {
//loop through all elements on the page
//if the current element's id ends with endId, return it
//return null;
}
这种类型的功能更多讨论here。
正如EndangeredMassa指出的那样,您的服务器端处理正在评估<%(可能是ERB?)。
尝试逃离<%=与& LT;%=
什么错误你得到? – 2011-03-10 22:06:50
它给了什么错误? – 2011-03-10 22:07:51
你会得到什么错误? (遵循趋势) – 2011-03-10 22:08:32