在用户控件(ascx)中使用js的最佳方式?
我经常会在用户控件中使用js文件或者js代码,例如我有一个级联的地址选择控件,这就需要将相应的js文件引入(其中定义了ajax的操作),并在$(document).ready()中注册select的onchange事件。目前有三个选择:
1.直接在ascx文件中写<script src="<%=...%>"></script>,但是这样script标签就会出现在页面的各个地方,一来不标准,而来还可能会产生重复引用的问题(因为用户控件也是可以重复引用的)。
2.在使用用户控件的aspx文件的head中引用js文件,写初始化js块,但是这样的话,就让页面和控件间的耦合性过强,父(aspx)依赖子(ascx)怎么说都有点不太对劲。
3.使用ScriptManager注册到head中。但是这样,我一来担心性能受到影响,另外一方面也把js代码引入到了c#代码中。
请问你是怎样在用户控件中使用js的呢?
------解决方案--------------------
可以做出dll控件,这样可以避免重复添加<script src="xx.js"的问题
如果要用ascx的话,可以单独做个用户控件,如js.ascx,只提供引用功能。一个页面加一个这个可以解决