外部Javascript文件获取.NET页面中服务器控件的ID

引用:http://www.soaspx.com/dotnet/asp.net/tech/tech_20120302_8685.html

方法一:使用内联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代码就能获得服务器控件的相关属性。

 

posted @ 2012-09-12 13:13  jsping68  阅读(1998)  评论(0编辑  收藏  举报