gpt4 book ai didi

javascript - 如何使用 JavaScript 字符串动态创建 '<%= ...ClientID %>'?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:10 25 4
gpt4 key购买 nike

您好,我正在尝试编写一个 javascript 生成 <%= element.ClientID% >其中元素是函数的输入参数之一。我正在尝试写一个变量

var elementName = "<%=" + element + ".clientID%>" 

报错

CS0117: 'string' does not contain a definition for '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:使用 Ends-with

如果您可以使用 jQuery,则可以方便地通过 ID 引用 ASP.Net 控件。本质上,所有 ASP.Net ID 都以您在后面的代码中使用的实际变量名称结尾。因此,如果您有一个名为 CoolButton 的元素,您可以使用 jQuery 在 javascript 中找到它,如下所示:

var element = $('[id$=CoolButton]');

$= 运算符表示结束于。因此,它会找到页面上所有 ID 以 CoolButton 结尾的元素。页面上 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 .

关于javascript - 如何使用 JavaScript 字符串动态创建 '<%= ...ClientID %>'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266469/

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