代码之家  ›  专栏  ›  技术社区  ›  Rich Andrews

用于文档网站导航的启用Web服务的Telerik TreeView的设计模式

  •  2
  • Rich Andrews  · 技术社区  · 14 年前

    我目前正在使用Telerik Ajax工具包开发ASP.NET 3.5中的文档管理系统。它由主页组成,顶部有标题横幅,左侧有一个用于浏览网站的RadTreeView。TreeView使用静态节点和动态节点的组合。动态节点通过WebService进行填充。单击节点时,相关页面将被导航到,重新加载母版页并显示目标页面的内容。

    这个问题来自这样一个事实:TreeView的动态节点是通过一个WebService填充的,因此当用户在树中导航以查找一个文档时,TreeView的行为就像您所期望的那样。但是,当您到达动态节点树的底部时,导航到navigateURL的页面会导致加载相关页面,然后TreeView会将自身重置为折叠状态。这意味着用户可能深陷在一堆文档中,但当他们查看一个文档时,树会倒塌,他们必须重新开始导航。从易用性的角度来看,这种限制是不可接受的。

    根据Telerik的说法,这是出于性能原因而设计的行为——节点只担心填充下一组节点,因此在ViewState中不会记住TreeView状态。

    所以,问题的关键是…

    masterpage/async treeview导航设计模式是否有效?

    在母版页上使用Ajax树视图还有其他方法吗?它能记住当另一个页面被导航到时的状态?

    我考虑过siglapage/updatepanel/partial-page呈现模型,但是我在网上看到的观点推断这是个坏主意。它混淆了那些期望后退/前进浏览器行为在站点中导航的用户,但在单页的世界中,他们最终会离开站点。

    我还认为使用单页容器和iframe可能有效,但这似乎偏离了使用母版页的“标准”设计模式。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Frank    14 年前