DbEntry 开发实践:Wiki 系统(五)
2009-12-04 21:58
323 查看
上回书说到,VisualWiki系统已经基本可以运行,我们现在来考虑给他加个路径功能。举例来说,我们从Home页,点击Hello链接,进入Hello页,这时,我们希望有Home和Hello两个链接在Wiki页顶端。再点击Hello页中的Next链接,进入Next页,这时,我们希望有Home、Hello、Next三个链接在Wiki页顶端。
需求就是这样,不过,如何实现呢?应该可以对Article设置对自己的一对多关系,那么在数据库中它们的父子关系就是确定的。不过,我却不太希望这样,对于Wiki来说,Wiki页都是独立的似乎更符合常规,那么这个路径怎么生成呢?
考虑之后,其实这个路径信息不必保存在数据库内,而只需要在url里面就足够了。具体就是增加一个path参数,用来解析路径信息,这里面有两个选择,一是path里是路径Wiki页的名称,另一个是path里是路径Wiki页的Id,我选择了后者,多个Id之间用下划线连接。
当然,这个改动也牵涉到GenerateShowText函数,所以先来修改它的单元测试吧,它应该增加一个path参数,当其为null时,处理方式和以前一样,否则将path加入生成的链接里:
代码public static void SetLink(HyperLink link, string pageName, string linkPageName, string title, string path)
{
if (pageName.ToLower() == linkPageName.ToLower())
{
link.Enabled = false;
}
else
{
link.Enabled = true;
link.NavigateUrl = new UrlBuilder(linkPageName).Add(Const.PathName, path).Add(Const.TitleName, title).ToString();
}
}
再次运行程序,终于全部正常了。至此,Wiki编辑功能全部完成,只是界面还有点儿惨不忍睹,下一步我们就要进行一些界面调整,不过现在,提交代码先。目前的代码:VisualWiki5.7z
未完待续……
需求就是这样,不过,如何实现呢?应该可以对Article设置对自己的一对多关系,那么在数据库中它们的父子关系就是确定的。不过,我却不太希望这样,对于Wiki来说,Wiki页都是独立的似乎更符合常规,那么这个路径怎么生成呢?
考虑之后,其实这个路径信息不必保存在数据库内,而只需要在url里面就足够了。具体就是增加一个path参数,用来解析路径信息,这里面有两个选择,一是path里是路径Wiki页的名称,另一个是path里是路径Wiki页的Id,我选择了后者,多个Id之间用下划线连接。
当然,这个改动也牵涉到GenerateShowText函数,所以先来修改它的单元测试吧,它应该增加一个path参数,当其为null时,处理方式和以前一样,否则将path加入生成的链接里:
代码public static void SetLink(HyperLink link, string pageName, string linkPageName, string title, string path)
{
if (pageName.ToLower() == linkPageName.ToLower())
{
link.Enabled = false;
}
else
{
link.Enabled = true;
link.NavigateUrl = new UrlBuilder(linkPageName).Add(Const.PathName, path).Add(Const.TitleName, title).ToString();
}
}
再次运行程序,终于全部正常了。至此,Wiki编辑功能全部完成,只是界面还有点儿惨不忍睹,下一步我们就要进行一些界面调整,不过现在,提交代码先。目前的代码:VisualWiki5.7z
未完待续……
相关文章推荐
- DbEntry 开发实践:Wiki 系统(二)
- DbEntry 开发实践:Wiki 系统(三)
- DbEntry 开发实践:Wiki 系统(一)
- DbEntry 开发实践:Wiki 系统(四)
- DbEntry 开发实践:Wiki 系统(七)
- DbEntry 开发实践:Wiki 系统(六)
- 好文莫过于此:搜索引擎系统学习与开发实践总结(张合福的专栏)
- 【实践驱动开发3-004】TI WL1835MODCOM8 在android的移植 - 系统结构初始化和参考列表
- [实践]基于WebSocket,Spring开发消息系统后台
- 升讯威微信营销系统开发实践:(2)功能设计与架构设计
- 升讯威微信营销系统开发实践:(5) Github 源码:微信接口的 .NET 封装
- 小米网抢购系统开发实践和我的个人观察
- 进阶第21课时,实践,简易银行系统开发第四版
- “米粉节”背后的故事——小米网抢购系统开发实践
- 工作室准备开展3个系统项目的开发实践
- 提高第40课时,实践,简易银行系统开发
- “米粉节”背后的故事——小米网抢购系统开发实践
- 小米网抢购系统开发实践和我的个人观察
- 开发操作系统实践 (一)——写给LinDos系统开发的前言
- 升讯威微信营销系统开发实践:(4)所见即所得的微官网 [源码]