修改IEWebControl适应普通虚拟目录
|
IEWebControl相信大多数的Asp.Net开发人员都知道,即便没有用过也听说过,主要包含TreeView、TabStrip和ToolBar、MultiPage四个比较常用的控件,其中TreeView最常用,但是默认的IEWebControl却只能将资源文件(包括HTC和images文件)放到WEB站点的根目录下才能运行,这样对于很多无法更改服务器设置的用户来说是相关不便的,不过我们只要稍微手动修改一下MS提供的源代码,就能很快让整个控件都在应用程序目录下运行。 主要修改代码在BaseRichControl.cs文件中,通过跟踪可以发现寻找资源文件是通过FindCommonPath方法来执行的,其实可以发现此方法中已经预留了通过配置节设置资源文件的途径,下面是修改的步骤: 1.将FindCommonPath()中的return CleanupPath(path);修改为return context.Request.ApplicationPath + CleanupPath(path); 2.修改常量ConfigName的值为appSettings 3.在Web.Config中新增一个appSettings的配置节,key必须是常量CommonFilesKey定义的值,当然你也可以自己修改,至于value,看需要要放入虚拟目录的哪个路径下面 4.将IEWebControl解压缩出来的.htc和.gif文件放入web.config中指定的文件夹下面即可 这样,即便目标服务器没有安装IEWebControl,我们也可以让所有的控件都运行起来了.当然Asp.Net2.0已经将TreeView加为标准控件了,到时候不必这么麻烦了J
P.S:HttpContext.GetConfig(string name);读取的到底是什么地方的配置节呢?理解上应该是读取自定义的配置节,如果是自定义的配置节,应该是ConfigurationSettings.GetConfig()吧?不太明白,谁能具体解释一下呢? |
浙公网安备 33010602011771号