gpt4 book ai didi

c# - Asp.Net 尝试获取 ClientID

转载 作者:行者123 更新时间:2023-12-02 17:36:43 25 4
gpt4 key购买 nike

我在尝试弄清楚如何将控件 ClientID 传递给我的 JavaScript 方法之一时遇到了困难。

编辑:我意识到我应该提到这是一个基于 .Net 3.5 构建的 Asp.Net 应用程序。无法使用 .Net 4.0 技巧,但你们在下面的回复中提到的 4.0 技巧绝对值得记住,并且可以轻松解决此问题。

当我执行如下操作时,我的 Javascript 方法最终会获取显示在我的参数中的 <%= gvCompanySelector.ClientID %> 的文字文本。

下面是我的 Asp.Net 控件在 Aspx 页面中的样子。

<asp:HyperLink ID="aShowList" runat="server" 
onclick="javacript:showCompanySelector('divCompanySelector','<%= gvCompanySelector.ClientID %>');"
CssClass="button">Select</asp:HyperLink>

我的 JavaScript 方法如下所示。

function showCompanySelector(divName,gridName) {
var elem = document.getElementById(divName);
var gridElem = document.getElementById(gridName);
if (elem.style.visibility === 'visible') {
elem.style.visibility = 'hidden';
elem.style.height = '0px';
gridElem.style.height = '0px';
}
else {
elem.style.visibility = 'visible';
elem.style.height = '200px';
gridElem.style.height = null;
}
}

我的 gridName 参数正在将值 <%= gvCompanySelector.ClientID %> 传递给它。当我期望参数显示类似 ct100_blahlbah_gvCompanySelector ClientID 的内容时。

令我烦恼的是,如果我只使用标准 Anchor 标签,ClientID 就可以正常通过。

如果建议是使用 AddHandler 或在我的代码隐藏中构建 javascript 调用,我想避免它。我试图让这段代码具有一定的一致性。 =-/

谢谢!

最佳答案

直接使用

 var elem = document.getElementById('the id of the required control');
var gridElem = document.getElementById('the id of the required control');

无需传递给javascript,将控件的clientIDmode更改为static

或者

不需要在参数中传递

var gridElem = document.getElementById('<%= idofthecontrol.ClientID %>');

有时可能会显示错误:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

然后使用

 var gridElem = document.getElementById('<%# idofthecontrol.ClientID %>');

关于c# - Asp.Net 尝试获取 ClientID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22550366/

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