• 使用DNNTree控件制作DNN模块


    为了学习DNN,我最近一直在看DNN团队的相关博客和个人网站,我有很多问题,也是通过在DNN官方站的论坛上得到答案的,当然,有很多让asp.net和DNN方面的资深人士不屑的初级得不能再初级的,问题。不过,还是感谢他们能回答,至少是提示,也非常感谢这些愿意将自己的知识分享给新人的IT人。在此,我也将我的一些学习过程写出来,希望对更新的新人能有一点帮助。我始终相信作IT的,特别是编程这块,需要大家(不论国外,国内)将自己的知识分享出来,进步才够快。

    好的,废话不说了。
    这是Michael的教程,可以说是step by step的。如果还不会DNN module开发的朋友,请先看这篇文章,也是很初级的,同样step by step,相信自己是最棒的。
    http://www.codeproject.com/KB/applications/LCTDNNModDev.aspx

    http://www.adefwebserver.com/DotNetNukeHELP/DNNTree/
    我照着作下来,有这几点需要注意的,我用的是C#。

    遇到的问题是:objNode.ImageIndex = eImageType.Folder
    vs2005对此没有提示,说明并没有在上下文定义,或者引用相关的类或者名称空间。首先,我是在vs2005里用calss view和object view查找,没有! 接着在DNN Q群里问高手,结果得到提示,在filemanager.ascx.vb中找到了enum的定义,不过,还是引用不了。再后来google一通,还是未果。于是,我还向Michael去了mail,并在论坛上发了贴。结果,他们都给了我认真的回复,而当我作完这个练习后,我发现,在这段代码最后,有对eImageType.Folder
    的定义。
    Public Enum eImageType
    Folder
    Page
    End Enum
     

    很是惭愧!

    建议遇到问题,按上述流程未解决的,请在相关的专业论坛发贴,实在不行,再向作者去mail。因为就在昨晚我看Michael的其他教程时,看到醒目的提示,请勿来mail,有问题到论坛。的确理解,他的教程读者比牛毛还多,都去mail,还不累死,哪儿还有精力来写更多的教程呢。如果遇到我这样的问题,还不给郁闷死。

    第2个问题,就是编译时,提示error,意料之中,从VB到C#,一般都有这样的问题。
     在这儿推荐一个好站,http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
    它可以将vb c#互转代码。
    当然,我是手工转的,因为代码量较少,没必要用工具,就当对自己的提高吧。

    objTreeNode = objParent.TreeNodes(index)

    这个index外面的圆括号,应该换成[],知道吧。不知道原因的,请在评论里回复。

    另外,
    Dim objTreeNode As TreeNode

    转成C#
    TreeNode objTreeNode;
    后,可能会出错,如果你在using名称空间时,同时引用了using System.Web.UI.WebControls;
    using DotNetNuke.UI.WebControls;的话。

    因为在这里,我们用的TreeNode是DotNetNuke.UI.WebControls;的,而非System.

    所以,要么请您明确写明,写全,要么,将using System.Web.UI.WebControls;的WebControls去掉,因为这项目里正好用不着System的WebControls.今后如果遇到同一项目里需要用到这两个WebControls的话,请用前者,写全,写明。

    第3个问题:

    编译通过了,在IE里,除了图标显示为红叉外,其他都能正常使用,达到预期效果。
    我看了图标的Property,显示的是http://localhost/images/folder.gif 而在我的系统里正确的应该在images前面加上dnn/
    在vs2005中,查看DNNTree控件的属性,看到systemimagespath居然自作聪明的给我加上了images,请将其改为dnn(如果你也用的是DNN作为虚拟目录名)。

    相应的
    代码文件里也不需要像Michael那样加上"http://www.cnblogs.com/../"
    而是
    DNNTree1.ImageList.Add("images/folder.gif");
    DNNTree1.ImageList.Add("images/file.gif");

    一切OK,如果您还遇到什么新的问题,欢迎您在评论(http://blog.csdn.net/metababy)里,提出,这样,今后其他人搜到这文章,就不会出现同样的疑惑了。
  • 相关阅读:
    linux下的内存映射函数mmap详解及示例代码
    Android平台上使用属性系统(property system)
    Android筆記
    Android Prelink
    DataGridView BindingSource BindNavigator
    可排序的ListView
    开源2D绘图组件ZedGraph
    BackgroundWorker示例
    级联datagridview 利用datarelation和bindingsource
    继承DataGridView
  • 原文地址:https://www.cnblogs.com/meta/p/1243340.html
Copyright © 2020-2023  润新知