gpt4 book ai didi

asp.net - 扩展事件字符串中的 ClientID

转载 作者:行者123 更新时间:2023-12-02 20:42:23 28 4
gpt4 key购买 nike

我在 .ascx 用户控件中遇到 <%= obj.ClientID %> 扩展问题。

我有一个 .js 文件,其中包含 JavaScript 函数:

function doSomething(objectId)
{
...
}

我有一个 .ascx 文件,其中包含一些 html 元素,并且在一个元素的 onclick= 中我想调用 doSomething(),传递该 .ascx 文件中元素的 ID,其中传递的 ID 是其他元素的 ID比被点击的那个要大,所以我不能使用“this”。

也许举个例子会更清楚。

这有效:

<script type="text/javascript">
function redirect()
{
doSomething('<%= top.ClientID %>');
}
</script>
<div id="top" runat="server">
<img src="..." alt="..." onclick="redirect();"/>
</div>

但这并不:

<div id="top" runat="server">
<img src="..." alt="..." onclick="doSomething('<%= top.ClientID %>');"/>
</div>

当我查看源代码时,我发现 <%= %> 替换没有发生,而不是“doSomething('ctl00_myControl_top');”我得到“doSomething('<%= top.ClientID %>');”

由于某种原因,脚本扩展发生在前一种情况下,但不会发生在后者中。当然,这种解决方法是 Not Acceptable ,因为如果我在页面上包含该控件的多个副本,它就会中断 - 只有一个实例的“redirect()”函数可以访问。

关于如何使这种替代起作用有什么想法吗?

最佳答案

可以在我的机器上运行吗?

<div id="top" runat="server">
<a href="#" onclick="doSomething('<%= top.ClientID %>')">rarrarara</a>
</div>

成为

<div id="ctl00_ContentPlaceHolder1_top">
<a href="#" onclick="doSomething('ctl00_ContentPlaceHolder1_top')">rarrarara</a>
</div>

关于asp.net - 扩展事件字符串中的 ClientID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114366/

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