標籤:摺疊導航 樹形導航 無線迴圈
輸出結果
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4D/8E/wKiom1RTLm_gfOQqAABSmIgU93s234.jpg" title="QQ20141031143730.jpg" alt="wKiom1RTLm_gfOQqAABSmIgU93s234.jpg" />
表結構
| depid |
depname |
upid//所屬上級id |
xh //排序 正序 |
|
| 123 |
一級導航 |
0 // 一級 |
0 |
|
| 124 |
一級下二級導航 |
123 |
1 |
|
c# 代碼:
public string showdep()//輸出第一層,根據所屬上級id調用下一層
{
string str = "";
DataTable dep = getdep(0, "");
int ii = 0;
foreach (System.Data.DataRow dt1 in dep.Rows)
{
str += " <li> <input type=\"checkbox\" id=\"Depds\" name=\"Dep" + ii + "\" alt=\"" + dt1["depid"].ToString() + "\" ";
str += " onClick=\"chkbm(" + ii + ",‘" + dt1["depid"].ToString() + " ‘)\" value=\"" + dt1["depid"].ToString() + "\"" + PowerCheck.Depsge(dt1["depid"].ToString()) + " />";
str += dt1["depName"].ToString();
str += "</li>";
DataTable dep1 = getdep(int.Parse(dt1["depid"].ToString()), " |-");
str += showdep1(dep1, "|-");
ii++;
}
return str;
}
public DataTable getdep(int upid, string shu)
{//shu欄位 放在最前面輸出 可看出層次, 但此次指令碼已控制層次,so此次沒用上
string sql = "select depid,depname,upid,‘" + shu + "‘ as shu from depart where upid=" + upid + " order by xh asc ";
DataTable dt = dbc.spdataset(sql).Tables[0];
return dt;
}
public string showdep1( DataTable dt, string shu)
{
string str="";
if (dt.Rows.Count > 0)
{
shu = " " + shu;
int ii = 0;
str += "<ul>";
foreach (System.Data.DataRow dt1 in dt.Rows)
{
str += " <li><input type=\"checkbox\" id=\"Depds\" name=\"Dep" + ii + "\" alt=\"" + dt1["depid"].ToString() + "\" ";
str += " onClick=\"chkbm(" + ii + ",‘" + dt1["depid"].ToString() + " ‘)\" value=\"" + dt1["depid"].ToString() + "\"" + PowerCheck.Depsge(dt1["depid"].ToString()) + " />";
str += dt1["depName"].ToString();
str += "</li>";
DataTable dep1 = getdep(int.Parse(dt1["depid"].ToString()), shu);
str += showdep1(dep1, shu);
ii++;
}
str += "</ul>";
}
return str;
}
前台html代碼
引用樹形摺疊js, 把打鉤項的id逗號分隔存到一個輸入框裡 方便後台讀取
c#無線迴圈出樹形導航 ,可摺疊,有勾選