• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

EdithZone .NET Blog

O,My God!
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

修改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()吧?不太明白,谁能具体解释一下呢?

posted on 2004-09-14 17:16  Hotdog  阅读(369)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3