zoukankan      html  css  js  c++  java
  • 母版页 treeview控件 SiteMapPath控件 treeview数据库绑定模式

     母版页就是网站中一样的部分
    母版页的后缀名是.Master
    可以把母版页当成一个页面  想让哪里是别的内容就可以  通过如下:
     
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
           
    </asp:ContentPlaceHolder>
    //相当于占位符 想改哪里占据哪里!
    如果要创建带母版页的Web窗体  右击新建项即可

    同样的 我们可以在母版页中添加JQUERY的引用 这样我们就可以在子页面中写入工厂函数的代码

    如果套用母版页,控件的ID值会发生变化

    这是Html生成的代码 
    解决方案:

    JavaScript:    var obj = document.getelementbyid("<%Label1.ClientID%>");
    Jquery:     $('#<%Label1.ClientID%>')

    TreeView 绑定 XML
    需要XmlDataSource控件,再设置TextField,NavigateUrlField 属性

    SiteMapPath 站点地图控件
    我们可以把它放到母版页
    这个控件只能绑定Xml 其文件路径在项目根目录 名称为Web.sitemap
     
    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
       <siteMapNode url="/default.aspx" title="第三波书店"  description="第三波书店">
           <siteMapNode url="" title="第二章"  description="" >
             <siteMapNode url="/chp02/login.aspx" title="登录"></siteMapNode>
             <siteMapNode url="/chp02/SessionLogin.aspx" title="Sesson学习"></siteMapNode>
           </siteMapNode>
            <siteMapNode url="" title="第四章"  description="" >
              <siteMapNode url="/chp04/webForm1.aspx" title="母版页一"></siteMapNode>
              <siteMapNode url="/chp04/webForm2.aspx" title="母版页二"></siteMapNode>
              <siteMapNode url="/chp04/webForm3.aspx" title="站点地图"></siteMapNode>
              <siteMapNode url="/chp04/ZzhDemo.aspx" title="呵呵"></siteMapNode>
           </siteMapNode>
       </siteMapNode>
    </siteMap>
    ​
    

      



                                                                                                         TreeView数据来源 表设计

                                                                             

      parentNodeid与nodeid对应 parentnodeid 0 的话就是根目录, 代码如下
        
     
    public partial class BingTreeView : System.Web.UI.Page
       {
           //也可以使用list泛型集合
           DataTable dt = new DataTable();
           protected void Page_Load(object sender, EventArgs e)
           {
              //  foreach(DataRow row in dt.Rows)
             //  {
              //     SysFun fun = new SysFun()
               //    {
                //       NodeId = Convert.ToInt32(row["nodeId"]),
                //       DisplayName = row["DisplayName"].ToString(),
                //       DisplayOrder = Convert.ToInt32(row["DisplayOrder"]),
                //       ParentNodeId = Convert.ToInt32(row["ParentNodeId"]),
                //       NodeUrl = row["nodeUrl"].ToString()
                //   };
                 //  list.Add(fun);
             //  }
               string sql = "select * from [SysFun]";
               dt = SQLHelper.ExcuteTable(sql,null).Tables[0];
               BindTree("0",TreeView1.Nodes);  //参数:(从头开始  根节点)
           }
           public void BindTree(string parentId,TreeNodeCollection tnc)
           {
               DataView dv = dt.DefaultView;           //返回可用于筛选的集合
               dv.RowFilter = "parentNodeId="+parentId;  //筛选出符合treeview规则的dv
               foreach (DataRowView row in dv)
               {
                   TreeNode newtn = new TreeNode();         //声明treenode
                   newtn.Text = row["Displayname"].ToString();
                   newtn.NavigateUrl = row["NodeUrl"].ToString();
                   newtn.Value = row["NodeId"].ToString();
                   tnc.Add(newtn);
                   BindTree(newtn.Value,newtn.ChildNodes);//继续回调 找完继续找parentNodeId(方法结束继续Foreach)
               }
           }
       }
    

      


    分析:回调的方法是为了添加一个根目录的所有子集 添加完一个根节点的所有子集 foreach就会结束,那么方法执行就会结束,再次回到非回调的方法中 继续加载,直到所有根节点的子集全部加载完 ,此时bindtree方法就会结束。
         
  • 相关阅读:
    git cmd 命令在已有的仓库重新添加新的文件夹
    google guava Multimap的学习介绍
    JavaScript笔记基础版
    初识hive
    深入学习HBase架构原理
    初识Azkaban
    MapReduce工作流多种实现方式
    Hive 分组问题
    sqoop使用中的小问题
    Sqoop 结合多种系统的具体应用
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/9433775.html
Copyright © 2011-2022 走看看