[英]How to get asp.net client id at external javascript file
当我使用嵌入式javascript 函数时,我可以使用以下代码获取元素的客户端ID :
document.getElementById('<%=buttonXXX.ClientID%>' )
但是现在我使用外部javascript文件进行缓存和更快的渲染,这段代码不再用于获取元素的客户端ID ,它给出了错误。
如何使用asp.net 2.0,netframework 3.5,c#,iis 7.5在外部javascript文件中获取元素的客户端ID
我可以提出两种方法。
在调用javascript之前定义变量,在可编译的.aspx文件中。
var ButtonXXXID = <%=buttonXXX.ClientID%>
// and now include your javascript and use the variable ButtonXXXID
在外部javascript文件中,将您的代码编写为:
function oNameCls(ControlId1) {
this.ControlId1 = ControlId1;
this.DoYourWork1 = function() {
// use the control id.
// this.ControlId1
}
}
并称呼你的行为。
<script>
// init - create
var <%=this.ClientID%>MyCls = new oNameCls('<%=Control1.ClientID%>');
// do your work
<%=this.ClientID%>MyCls.DoYourWork1();
</script>
以这种方式调用操作可防止从同一页面上的其他控件使用相同操作覆盖一个控件中的一个操作。
您可以使用类选择器。 jquery可能会大大简化你的生活。 所以你可以在控件中应用一个特殊的类:
<asp:LinkButton ID="foo" CssClass="foo" runat="server" Text="foo" />
在DOM准备就绪后,您可以在外部javascript文件中使用类选择器引用该按钮:
$(function() {
var fooButton = $('.foo');
});
在脚本文件中( test.js
)
function test(ControlID1) {
var controlId = document.getElementById(ControlID1);
controlId.onchange = function () {
alert(controlId.value);
}
}
在.aspx
文件中
<script type="text/javascript">
var callTest = test('<%=txtSelected.ClientID%>');
window.onload = callTest;
</script>
当我没有其他更好的选择时,我在.js
文件中使用以下代码。
$("[id$='buttonXXX'])
我知道旧问题,但是使用jquery你可以使用这个方法:
Aspx文件
<asp:Button ID="btnCalculate" ClientID="btnCalculate" runat="server" />
外部js文件
$("[ClientID='btnCalculate']").
https://lanitdev.wordpress.com/2009/06/08/extending-jquery-to-select-asp-controls/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.