引用:
方法一:使用内联JS访问器
首先在页面注册该控件:<
script
type
=
"text/javascript"
>
function getClientId()
{
var paraId1 = '<%= Button1.ClientID %>';//注册控件1
var paraId2 = '<%= TextBox1.ClientID %>';//注册控件2
return {Id1:paraId1,Id2:paraId2};//生成访问器
}
</
script
>
然后在页面中引用外部JS:
<
script
type
=
"text/javascript"
src
=
"JScript.js"
></
script
>//引用外部js
在外部js文件JScript.js中:
JScript.js
function GetID()
{
var btn=document.getElementById(getClientId().Id1);
btn.value="OKbtn1";
var btn=document.getElementById(getClientId().Id2);
btn.value="OKbtn2";
}
方法二:使用JS全局变量
页面:
<script type=
"text/javascript"
>
var
globals = {};
globals.controlIdentities = {};
globals.controlIdentities.someControl1 =
'<%= Button1.ClientID %>'
;
globals.controlIdentities.someControl2 =
'<%= TextBox1.ClientID %>'
;
</script>
<script type=
"text/javascript"
src=
"JScript.js"
></script>
JS文件:
function
ChangeText()
{
var
btn=document.getElementById(globals.controlIdentities.someControl1);
btn.value=
"OKbtn"
;
}
在上面两种方法中,也没有真正的实现aspx和js的完全解耦,所以,在js文件中,最好还是加上: ///<reference path="Default5.aspx"/> 以上是网上的一种解决方法个人决得虽然可以解决问题,但是还会有一小部份的js代码要写在html页面中。而用jQuery中的筛选器就完全只在外部js中编写jquery代码就能获得服务器控件的相关属性。