asp.net c實現省市區樹形菜單代碼

來源:互聯網
上載者:User

asp教程.net c實現省市區樹形菜單代碼

/// <summary>
  /// 建立dataset的方法
  /// </summary>
  /// <param name="nodes">treeview的根節點</param>
  /// <param name="ds">dataset資料集合</param>
  /// <param name="pid">節點的父</param>
  private void createtreeview(treenodecollection nodes, dataset ds, int pid)
  {
  //定義篩選條件
  string sql = string.format("parentid={0}", pid);

  //從dataset中篩選合格行的集合
  datarow[] drr = ds.tables[0].select(sql);

  //遍曆獲得行的集合
  foreach (datarow dr in drr)
  {
  //建立treeview節點
  treenode tnode = new treenode();
  //添加到根節點中
  nodes.add(tnode);
  //設定顯示的文本
  //tnode.imageurl = "images/foldericon1.gif";
  tnode.text = dr["purname"].tostring();
  tnode.value = dr["purid"].tostring();
  //設定顯示的路徑
  tnode.navigateurl = dr["pururl"].tostring();
  //遞迴調用方法
  createtreeview(tnode.childnodes, ds, convert.toint32(dr["purid"]));
  //從dataset中刪除已經添加的行,提高訪問效率
  ds.tables[0].rows.remove(dr);

  }
  }
 

///方法二
 

  private void treeviewbind()
    {
        string sql_tr = "select id,pid,name from tab";
        sqlconnection mysql教程conn = new sqlconnection(sqlconn);
        sqldataadapter mydataadapter = new sqldataadapter(sql_tr, mysqlconn);
        mysqlconn.open();
        mydataadapter.fill(ds_tr, "tree_show");
        dataview dv = ds_tr.tables[0].defaultview;
        dv.rowfilter = "pid=0";
        treeview1.showcheckboxes = treenodetypes.none; //不顯示checkbox
        foreach (datarowview drv in dv)
        {
            treenode node = new treenode();
            node.text = drv["name"].tostring();
            node.value = drv["id"].tostring();
            node.expanded = false;
            treeview1.nodes.add(node);
            addnode(dv, node);
        }
    }

    /// 遞迴綁定子節點

    private void addnode(dataview dv, treenode node)
    {
        dv.rowfilter = "pid='" + node.value + "'";
        foreach (datarowview row in dv)
        {
            treenode replynode = new treenode();
            replynode.text = row["name"].tostring();
            replynode.value = row["id"].tostring();
            replynode.expanded = false;
            node.childnodes.add(replynode);
            addnode(dv, replynode);
        }
    }
 
 //方法三
 
/// treeview遞迴綁定資料
///先綁定province根據pif查詢city
 private void inittree(treenodecollection nds,string parentid)
 {
 dataview dv=new dataview();
 treenode tmpnd;
 string intid;
 dv.table=ds.tables["tree"];
 dv.rowfilter="parentid='" + parentid + "'" ;
 foreach(datarowview drv in dv)
 {
 tmpnd=new treenode();
 tmpnd.tag=drv["nodeid"].tostring();
 tmpnd.text=drv["nodename"].tostring();
 nds.add(tmpnd);
 intid=drv["parentid"].tostring();
 inittree(tmpnd.nodes,tmpnd.tag.tostring());
 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.