window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.taoxtao.cn\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.4.2"}}; /*! This file is auto-generated */ !function(e,a,t){var r,n,o,i,p=a.createElement("canvas"),s=p.getContext&&p.getContext("2d");function c(e,t){var a=String.fromCharCode;s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,e),0,0);var r=p.toDataURL();return s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,t),0,0),r===p.toDataURL()}function l(e){if(!s||!s.fillText)return!1;switch(s.textBaseline="top",s.font="600 32px Arial",e){case"flag":return!c([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])&&(!c([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!c([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]));case"emoji":return!c([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340])}return!1}function d(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(i=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},o=0;o

时间: 2020-11-21|89次围观|0 条评论

【转载】TreeView与递归 背景:今天遇到这么一个情况:

需要绑定SiteMap中的一部分内容到一个TreeView控件中,SiteMap结构如下:



<?
xml version="1.0" encoding="utf-8"
?>


<
siteMap 
xmlns
="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"
>

  

<
siteMapNode 
url
="~/Default.aspx"
 title
="首页"
>

    

<
siteMapNode 
url
="~/AddReport.aspx"
 title
="影片报错"
></
siteMapNode
>

    【转载】TreeView与递归插图
    

<
siteMapNode 
url
="~/Recommand.aspx"
 title
="影片推荐"
></
siteMapNode
>

    

<
siteMapNode 
url
=""
 title
="启明星电影后台"
>

      

<
siteMapNode 
url
=""
 title
="系统功能"
 description
="启明星电影管理系统"
>

        

<
siteMapNode 
url
="~/Manager/Default.aspx"
 roles
="Administrators"
 title
="启明星电影后台"
></
siteMapNode
>

        

<
siteMapNode 
url
="~/Manager/NoticeManager.aspx"
 title
="公告管理"
></
siteMapNode
>

        

<
siteMapNode 
url
=""
 title
="管理员管理"
>

          

<
siteMapNode 
url
="~/Manager/AddManager.aspx"
 title
="添加管理员"
></
siteMapNode
>

          

<
siteMapNode 
url
="~/Manager/Managers.aspx"
 title
="管理管理员"
></
siteMapNode
>

        

</
siteMapNode
>

        【转载】TreeView与递归插图
      

</
siteMapNode
>

    

</
siteMapNode
>

  

</
siteMapNode
>


</
siteMap
>

例如,我要将title为“启明星电影后台”(下文称目标节点)的结点开始的内容绑定到TreeView,但又不想绑定其上方的节点。有一个SiteMap.CurrentNode可以获取当前的节点,于是,问题转化为,根据当前的节点,来定位目的结点。于是,最后使用了一个递归函数解决了这个问题:


    
private
 SiteMapNode GetBackRootNode(SiteMapNode currentNode,
string
 title)
    {
        

if
 (currentNode.Title 
==
 title) 
return
 currentNode;  
//
如果找到,则返回此节点。


        
if
 (currentNode 
==
 SiteMap.RootNode) 
return
 currentNode;  
//
如果是首结点,则返回首节点,此处也可以抛了节点不存在的异常。


        
return
 GetBackRootNode(currentNode.ParentNode,title);  
//
到Parent节点找。


    } 树是一种很特别的结构,其很多关系可以通过Parent或者Children来表达,于是,就会形成很多可以递归解决的方法。在遇到与Tree相关的内容时,多考虑一下使用递归,也许问题会转化得很简单。 posted on
2007-06-21 10:41
ms_dos 阅读(
...) 评论(
...)
编辑
收藏

转载于:https://www.cnblogs.com/nine425/archive/2007/06/21/791514.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/97763784

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《【转载】TreeView与递归
   

还没有人抢沙发呢~