我认为控件的文件的目录,应在两个方面可设置:
Absolute Path: C:\PublicData\ImageFiles\
Virtual Path: ~\xmlFiles\
我试着设计两个内置浏览来设置FilesDirectory属性。
以下为引用的内容: [EditorAttribute(typeof(System.Web.UI.Design.UrlEditor), typeof(UITypeEditor))] |
我没有使用UrlEditor,因为它不允许浏览外部站点的主目录。
以下为引用的内容: [EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(UITypeEditor))] |
我没有使用FolderNameEditor,因为它没有提供虚拟路径的选择。此外,它迫使用户选择一个我不想选择文件。
要创建自定义服务器控件编辑器,就要创建一个类自UITypeEditor继承和覆盖两个功能。..其中一个启动一个DialogBox。
下面是代码:
以下为引用的内容: using System; |
以下是编辑的DialogBox,如下所示:
我将不会显示DialogBox代码,因为这是它比较长,涉及广。由于缺乏文档,在开发过程中进行了反复的试错。但也有一些利益的东西。..
目录分隔符(斜线):
反斜杠像 “\~”这样被使用的时候,GetProjectItemFromUrl 函数将不能正常使用。它正斜杠:“/~”能正常工作。因此,我确保所有的目录分隔符使用正斜杠。但是,从目录浏览器返回的目录使用的是反斜杠。所以我们要确保一致性。..虽然它使代码有点凌乱,但真的没有我更喜欢其他选择。
服务器控件开发提示:
一旦控件放置到页面上,你能自动的更新bin文件路径下面的DLL,通过右击右击控件,选择“Refresh”。我不得不删除从bin目录下的控件,然后重新添加到网页上,以获取最新版本到该项目中。
调试编辑器:
调试控件是非常容易的。调试控件的编辑器却非常的难。因为它运行在Visual Studio中。我在不同的地方添加下面代码:
System.Diagnostics.Debugger.Break();
当运行到断点,你得到下面这个令人爽快的画面:
点击 “Debug the program”,将创建一个新的 Visual Studio 实例。你就能够调试控件的编辑器了。原来的运行Visual Studio将锁定的(至少在我这里是这样的),你不得不去终止。由于欠缺自定义服务器控件编辑器的文档,这是非常宝贵的去寻找和了解什么被传递了,发生了什么。
可能的改进:
•标题字体可设置(大小,颜色,背景颜色。..)
•将名称放在一个固定的div中,文件列表在另一可调整大小或有scrollable的div中。
•添加一个布尔字段来选择显示在链接的文件扩展名。
希望这篇文章能够帮助你。
ASP编码教程:如何实现/使用缓存
[ASP]2015年4月15日ASP编码教程:asp缓存的分类
[ASP]2015年4月15日ASP编码教程:何谓ASP缓存/为什么要缓存
[ASP]2015年4月15日ASP编码教程:asp实现的sha1加密解密代码
[ASP]2015年4月15日ASP编码教程:asp执行带参数的sql语句实例
[ASP]2015年4月14日