我有点难以弄清楚如何将控件 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 调用,我想避免它。我试图在这段代码中保持某种一致性。=-/
谢谢!