当我使用嵌入式javascript 函数时,我可以使用以下代码获取元素的客户端 ID:
document.getElementById('<%=buttonXXX.ClientID%>' )
但是现在我使用外部 javascript 文件进行缓存和更快的渲染,并且此代码不再用于获取元素的客户端 ID,它给出了错误。
如何使用 asp.net 2.0、netframework 3.5、c#、iis 7.5在外部 javascript 文件中获取元素的客户端 ID
当我使用嵌入式javascript 函数时,我可以使用以下代码获取元素的客户端 ID:
document.getElementById('<%=buttonXXX.ClientID%>' )
但是现在我使用外部 javascript 文件进行缓存和更快的渲染,并且此代码不再用于获取元素的客户端 ID,它给出了错误。
如何使用 asp.net 2.0、netframework 3.5、c#、iis 7.5在外部 javascript 文件中获取元素的客户端 ID
我可以建议 2 种方法。
在可以编译的.aspx文件中调用 javascript 之前定义您的变量。
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/