樹形選單在開發軟體和**中經常用到,但是會遇到乙個問題,在**中當你點開的時候,由於頁面重新整理了,又合起來來了,這種問題是用iframe不會出現,但是在**中很少會用到框架,最近就碰到了這樣的問題,在網上找了很多js寫的樹形選單,我需要分四級,但是都沒找到合適的,亂七八糟的**都有,很頭疼,沒辦法,自己就想辦法寫了乙個,這個是在知道分幾級的情況下,關於無限極沒研究,可以再基礎上在下點功夫也可以!
原理大概是這樣的:
第一步:需要把一級到四級樣式寫好,位置固定好
是否迴圈出來
看看**吧
樹形選單是個公用的部分,我們一般會放到使用者控制項裡,**如下:
"c#" autoeventwireup=
"true
" codebehind=
"protype.ascx.cs
" inherits=
"cms.web.control.protype
" %>
class=
"zy_con_l
">
class=
"zy_con_ltt
">品牌展示
class=
"zy_ppzslb
">
}
} %>
}
} %>
}
}%>
引用的頁面裡
後台**:
public
partial
class productlist1 : system.web.ui.page
if (!page.ispostback)
if ((request.params[
"classid
"] !=
null) && (request.params[
"classid
"].tostring() !=
""))
}
}
rptbind(
"classid in (
" + getallid(classid) +
")");
}
}
public
string geturl()
if ((request.params[
"classid2
"] !=
null) && (request.params[
"classid2
"].tostring() !=
""))
if ((request.params[
"classid3
"] !=
null) && (request.params[
"classid3
"].tostring() !=
""))
if ((request.params[
"classid4
"] !=
null) && (request.params[
"classid4
"].tostring() !=
""))
url +=
"&";
return url;
}
//////
獲得下級的所有id
///
system.text.stringbuilder str =
new system.text.stringbuilder();
int fag =
0;protected
string getallid(
int classid)
cms.bll.channel bll =
new bll.channel();
dataset ds = bll.getlist(
"kindid=1 and parentid=
"+classid);
foreach (datarow row
in ds.tables[
0].rows)
return str.tostring().remove(str.tostring().lastindexof(
","));
}
#region 列表繫結
private
void rptbind(
string strwhere)
//繫結資料
rptlist.datasource = pds;
rptlist.databind();
}
#endregion
protected
void aspnetpager1_pagechanging(
object src, wuqi.webdiyer.pagechangingeventargs e)
}
這樣點開的時候在重新整理頁面也不會隱藏了....
MVC EF實現樹形選單
樹形選單,可以簡單的認為是標籤的巢狀,在html中的格式就是1 html 2 控制器利用,強型別 public actionresult productssorttree var productssortlist operatecontext.current.bllsession.iproducts...
通過lambda實現選單樹形結構
public list listwithtree sorted menu1,menu2 collect collectors.tolist return level1menus 遞迴查詢當前選單的子選單 param root param all return private list getchil...
C 樹形選單的相關實現
在一些涉及到組織架構的場景,比如erp,oa系統中我們經常會需要用到樹的結構。自己開發的時候也遇到了此使用場景,總結一下以後就可以直接拿來用了。表設計如下 如下 public class node 節點id public int parentid 節點父級id 如果為0則為根節點 public st...