zoukankan      html  css  js  c++  java
  • 关于设置WebControls里的treeview控件的图片路径

    一般我们使用这个treeview控件时都是在虚拟目录下复制webctrl_client目录到默认网站的根目录下,其实这对开发人员只是很简单的一个步骤,但是在打包部署的时候确碰到了问题,假设你的网站是安装在虚拟目录下,你怎么使你的安装程序自动复制这个目录到相应的地方去呢,这是个问题.于是google,下载了http://www.microsoft.com/china/MSDN/library/archives/library/DNAspp/html/aspnet-usingtreeviewieWebcontrol.asp里wencontrols的代码并安装,查看treeview.cs,终于找到主要是AddPathToFilename这个函数来控制目录得,而这个函数在BaseRichControl.cs的抽象类里定义

            // --------------------------------------------------------------------
            
    // Common Files
            
    // --------------------------------------------------------------------

            
    /// <summary>
            
    /// Adds the common file path to the filename.
            
    /// </summary>
            
    /// <param name="filename">The filename to qualify with the common path.</param>
            
    /// <returns>The full path of the filename with the common path.</returns>

            protected string AddPathToFilename(string filename)
            
    {
                
    return AddPathToFilename(Context, filename);
            }


            
    /// <summary>
            
    /// Static version of AddPathToFilename so that classes not deriving from
            
    /// BaseRichControl can still find the common files path.
            
    /// </summary>
            
    /// <param name="context">The context from which to get the configuration.</param>
            
    /// <param name="filename">The filename to qualify with the common path.</param>
            
    /// <returns>The full path of the filename with the common path.</returns>

            internal static string AddPathToFilename(HttpContext context, string filename)
            
    {
                
    return FindCommonPath(context) + filename;
            }


            
    /// <summary>
            
    /// Finds the path for client files used be server controls.
            
    /// </summary>
            
    /// <param name="context">The context from which to get the configuration.</param>
            
    /// <returns>The path name.</returns>

            private static string FindCommonPath(HttpContext context)
            
    {
                
    // Look at the current configuration for the path
                if (context != null)
                
    {
                    NameValueCollection table 
    = (NameValueCollection)context.GetConfig(ConfigName);
                    
    if (table != null)
                    
    {
                        
    string path = (string)table[CommonFilesKey];
                        
    if (path != null)
                        
    {
                            
    return CleanupPath(path);
                        }

                    }

                }


                
    // Return the default path with version number
                Assembly assembly = typeof(BaseRichControl).Assembly;
                Version version 
    = assembly.GetName().Version;

                
    return DefaultCommonFilesRoot + version.Major.ToString() + "_" + version.Minor.ToString() + "/";
            }


    ,本来开始的想法是改这个函数,后来发现其实它还有个可配置的路径接口,还是先配置吧!

    于是在web.config加入以下节

        <configSections>
            
    <section name="MicrosoftWebControls" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />    
        
    </configSections>
     
        
    <MicrosoftWebControls>
            
    <add key="CommonFiles" value="/web/treepath/"></add>        
        
    </MicrosoftWebControls>

    注意:configSections一定要放在第一个子节最前面.

    剪切默认网站的webctrl_client目录到虚拟目录web/treepath/下,运行程序,树型界面出现了,只是前面的加减号出现问题,再右键查看WEB代码,发现SystemImagesPath属性还是指到webctrl_client目录下,看了SystemImagesPath的代码,把treeview控件的SystemImagesPath设置为空,再次运行程序,OK!全部通过,treeview的图片目录再也不需要依赖默认网站的图片目录了,打包也变的方便了,如果是几个网站在一个机器上,你也可以设置自己独立的treeview图片风格了,嘿嘿,再此写下这些供大家参考
    生活学习
  • 相关阅读:
    ios 正则表达式
    2016/2/26 jQuery的技术 1,安装 2,语法选择器$ 事件触发 3,常用jQuery函数
    2016/2/26 <marquee></marquee>实现多种滚动效果
    2016/2/25 onchange 应用
    2016/2/25 1、<表单验证<form></form> 2、正则表达式 3、事件
    2016/2/25 1, margin auto 垂直方向测试 无效 2,margin重叠 3,哪些是块状哪些是内联 4,display:block inline 导航栏把内联转块状最常见+ 扩展
    2016/2/25 html+css学习资源
    2016/2/24 css画三角形 border的上右下左的调整 以及内区域的无限变小 边界透明
    2016/2/24 1,css有几种引入方式 2,div除了可以声明id来控制,还可以声明什么控制? 3,如何让2个div,并排显示。4,清除浮动 clear:left / right / both
    2016/2/24 1,dotctype有几种? 2,了解html的发展历史
  • 原文地址:https://www.cnblogs.com/ttyp/p/165621.html
Copyright © 2011-2022 走看看