设置WebControls里的treeview控件的图片路径的步骤

设置WebControls里的treeview控件的图片路径的步骤

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

设置WebControls里的treeview控件的图片路径的步骤//--------------------------------------------------------------------
设置WebControls里的treeview控件的图片路径的步骤
//CommonFiles
设置WebControls里的treeview控件的图片路径的步骤
//--------------------------------------------------------------------
设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤///<summary>
设置WebControls里的treeview控件的图片路径的步骤///Addsthecommonfilepathtothefilename.
设置WebControls里的treeview控件的图片路径的步骤
///</summary>
设置WebControls里的treeview控件的图片路径的步骤///<paramname="filename">Thefilenametoqualifywiththecommonpath.</param>
设置WebControls里的treeview控件的图片路径的步骤///<returns>Thefullpathofthefilenamewiththecommonpath.</returns>

设置WebControls里的treeview控件的图片路径的步骤protectedstringAddPathToFilename(stringfilename)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤
returnAddPathToFilename(Context,filename);
设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
///<summary>
设置WebControls里的treeview控件的图片路径的步骤///StaticversionofAddPathToFilenamesothatclassesnotderivingfrom
设置WebControls里的treeview控件的图片路径的步骤
///BaseRichControlcanstillfindthecommonfilespath.
设置WebControls里的treeview控件的图片路径的步骤
///</summary>
设置WebControls里的treeview控件的图片路径的步骤///<paramname="context">Thecontextfromwhichtogettheconfiguration.</param>
设置WebControls里的treeview控件的图片路径的步骤///<paramname="filename">Thefilenametoqualifywiththecommonpath.</param>
设置WebControls里的treeview控件的图片路径的步骤///<returns>Thefullpathofthefilenamewiththecommonpath.</returns>

设置WebControls里的treeview控件的图片路径的步骤internalstaticstringAddPathToFilename(HttpContextcontext,stringfilename)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤
returnFindCommonPath(context)+filename;
设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
///<summary>
设置WebControls里的treeview控件的图片路径的步骤///Findsthepathforclientfilesusedbeservercontrols.
设置WebControls里的treeview控件的图片路径的步骤
///</summary>
设置WebControls里的treeview控件的图片路径的步骤///<paramname="context">Thecontextfromwhichtogettheconfiguration.</param>
设置WebControls里的treeview控件的图片路径的步骤///<returns>Thepathname.</returns>

设置WebControls里的treeview控件的图片路径的步骤privatestaticstringFindCommonPath(HttpContextcontext)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤
//Lookatthecurrentconfigurationforthepath
设置WebControls里的treeview控件的图片路径的步骤if(context!=null)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤NameValueCollectiontable
=(NameValueCollection)context.GetConfig(ConfigName);
设置WebControls里的treeview控件的图片路径的步骤
if(table!=null)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤
stringpath=(string)table[CommonFilesKey];
设置WebControls里的treeview控件的图片路径的步骤
if(path!=null)
设置WebControls里的treeview控件的图片路径的步骤设置WebControls里的treeview控件的图片路径的步骤
{
设置WebControls里的treeview控件的图片路径的步骤
returnCleanupPath(path);
设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤
//Returnthedefaultpathwithversionnumber
设置WebControls里的treeview控件的图片路径的步骤Assemblyassembly=typeof(BaseRichControl).Assembly;
设置WebControls里的treeview控件的图片路径的步骤Versionversion
=assembly.GetName().Version;
设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤
returnDefaultCommonFilesRoot+version.Major.ToString()+"_"+version.Minor.ToString()+"/";
设置WebControls里的treeview控件的图片路径的步骤}

设置WebControls里的treeview控件的图片路径的步骤

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

于是在web.config加入以下节

设置WebControls里的treeview控件的图片路径的步骤<configSections>
设置WebControls里的treeview控件的图片路径的步骤<sectionname="MicrosoftWebControls"type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
设置WebControls里的treeview控件的图片路径的步骤</configSections>
设置WebControls里的treeview控件的图片路径的步骤
设置WebControls里的treeview控件的图片路径的步骤
<MicrosoftWebControls>
设置WebControls里的treeview控件的图片路径的步骤<addkey="CommonFiles"value="/web/treepath/"></add>
设置WebControls里的treeview控件的图片路径的步骤</MicrosoftWebControls>

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

剪切默认网站的webctrl_client目录到虚拟目录web/treepath/下,运行程序,设置WebControls里的treeview控件的图片路径的步骤树型界面出现了,只是前面的加减号出现问题,再右键查看WEB代码,发现SystemImagesPath属性还是指到webctrl_client目录下,看了SystemImagesPath的代码,把treeview控件的SystemImagesPath设置为空,再次运行程序,OK!全部通过,treeview的图片目录再也不需要依赖默认网站的图片目录了,打包也变的方便了,如果是几个网站在一个机器上,你也可以设置自己独立的treeview图片风格了,嘿嘿,再此写下这些供大家参考设置WebControls里的treeview控件的图片路径的步骤
posted on 2005-06-01 00:43 ttyp 阅读(4263) 评论(33) 编辑收藏 引用 收藏至365Key 所属分类: ASP.NET
设置WebControls里的treeview控件的图片路径的步骤

评论

 
我的那个Microsoft.Web.UI.WebControls.dll(想把这个dll仅仅作为private的)没有加入到GAC里面,下面这段应该怎么写啊?
<configSections>
<section name="MicrosoftWebControls" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

谢谢!
回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-01 14:07 napoler
可不可以介绍详细点?我在Web.config中加了那个配置就出错了:配置错误。最快的方法就是弄个Demo
Thank You回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-01 14:28 ttyp
to mancini:
没做过,为什么要private?

to napoler:
你报什么错啊,注意要把那两段放第一节的最前面回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-02 08:42 mancini
to ttyp:
放到gac里面增加部署的工作量啊,private 只需要copy就可以了。回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-02 08:46 ttyp
.net的部署不是只要xcopy么回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-02 11:28 mancini
不是的,强命名的程序集可以xcopy但是那样就不是所有的程序都能用了,而是只有你部署的那个程序用了。如果加入到gac里面就是所有的程序可以通过public key等来引用了。
回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-02 13:12 ttyp
“而是只有你部署的那个程序用了”

不正是private么,我都要糊涂了

这里有篇文章
http://www.aspcool.com/lanmu/browse1.asp?ID=1183&bbsuser=aspnet回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-03 10:12 mancini
to ttyp:
是我搞错了。sorry.
错误原因是,我把网页上的代码之间拷贝到我的web.config里面去了,结果中间有些空格是非法的,删去就可以了。
恐怖啊,以后少拷贝网页上的代码回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-06-03 10:47 ttyp
呵呵,我很欣赏你错误后写原因。CSDN里提问的人即使解决了问题也没人做总结答案的,这是个不错的习惯回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-08-12 04:12 wfc]
我加上了不起作用,是不是还要调别的方法????回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-08-12 19:12 ttyp
也许你的目录没有设置正确,注意最后一定要带反斜杠回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-11-22 18:51 云淡风清
我弄了一个晚上,也没弄出来。哪位大哥能告诉我一下。回复

#不行啊大哥 2005-11-26 23:46 路过
web config是不是应该这样写啊?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<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>回复

#re: 关于设置WebControls里的treeview控件的图片路径 2005-11-27 11:05 ttyp
是这样啊,不过你的key="CommonFiles"的value属性,改为你的图片路径(相对虚拟目录),这里"/web/treepath/"为我例子中的目录回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-02-08 11:46 mpokky
为什么我这么做了以后,treeview还是不显示回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-02-16 13:50 mxf
我使用installshield打包,可以在把webctrl_client目录写到wwwroot目录下。不过在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>
还是很有用的,简化了打包文件的制作 ;谢谢咯回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-02-16 14:59 ttyp
不仅仅是简化安装,而且在你有多个虚拟目录时,想让自己的树和别人的树图标不一样就很有用了回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-04-10 22:46 Fantasier
to ttyp
你好,我已按照你的方法做了,但还是不行,不仅没图片也没平常的效果了,
这是什么原因呢。。会不会是因ieWebControl的版本不同而设置也不同呢?
我用的是 已打包好的直接安装的MSI程序。。请指教。。回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-04-11 08:30 ttyp
<add key="CommonFiles" value="/web/treepath/"></add>
路径设置对了么,注意前后都有反斜杠回复

#我怎么试都不成功,发现版本不同 2006-05-13 17:07 孜孜
Version=1.0.5000.0

而我的是1.0.2.226
microsoft.com下的也是1.0.2.226的

有些迷茫,高手再指点!回复

#搞定了 2006-05-13 17:45 孜孜
<add key="CommonFiles" value="/webctrl_client/1_0/"></add>
的VALUE值是相对虚拟目录而言的,而SystemImagesPath的正确指向应该是到webctrl_client/1_0/treeimages

比如我照上面的设置 那么

>? tv.SystemImagesPath
"/webctrl_client/1_0/treeimages/"

就证明引用正确了回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-05-13 17:49 孜孜
我晕,前面还应该加上虚拟目录

<add key="CommonFiles" value="/虚拟目录名/webctrl_client/1_0/"></add>回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-05-13 17:54 孜孜
我的思路对不对?

如果把虚拟目录名加到里面其不是理不爽了吗?

安装部署时的虚拟目录名是可先的,这其不是又给安装部署时添加麻烦吗?

我还是保存原有的安装部署(把webctrl_client复制到站点目录下)回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-05-13 18:49 ttyp
不用虚拟目录的,如果需要虚拟目录也没什么太大的意思了,你再看看回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-05-14 13:01 keyplayer
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 创建 MicrosoftWebControls 的配置节处理程序时出错: 未能加载文件或程序集“System, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。

源错误:


行 4: <!--自配置节-->
行 5: <configSections>
行 6: <section name="MicrosoftWebControls" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.2.226,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>
行 7: </configSections>
行 8: <MicrosoftWebControls>


源文件: d:/inetpub/wwwroot/webkpbbs/web.config 行: 6

程序集加载跟踪: 下列信息有助于确定程序集“System, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35”无法加载的原因。


警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM/Software/Microsoft/Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM/Software/Microsoft/Fusion!EnableLog]。

回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-07-14 17:32 bit2000
你好,有人问用C# .net2 代码实现树形目录,但是不用treeview的图片,代码如下(我测试了怎么都不显示树形标):
Default.aspx的代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server">
<Nodes>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</Nodes>
</asp:TreeView>

</div>
</form>
</body>
</html>


Default.aspx.cs的代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
}

回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-07-14 17:34 bit2000
测试是在.net2的虚拟主机环境下测试的,web根目录下就这两个文件。有人说可以正常,但是我测试了是怎么都不正常回复

#re: 关于设置WebControls里的treeview控件的图片路径 2006-07-14 18:18 ttyp
设置了webconfig文件么回复