我用递归的方式生成菜单,原来是用树控件画,现在想用<div><span>等控件自己画一个,可是,不知道如何写?代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
tree_load("0);
}
}
protected void tree_load(string strValue)
{
DataTable dtbMenu= new DataTable();
dtbMenu= DataSource.execQuery();//取值 for (int i = 0; i < dt.Rows.Count; i++)
{
if (rootnode == "1")//根节点
{
<div title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>" id="_div_<%=dtbMenu.Rows[i]["MenuId"].ToString()%>" class="nav_column_dark" onclick="checkNav('<%=dtbMenu.Rows[i]["MenuId"].ToString()%>')">
<span style="height:100%;padding-left:5px;padding-top:5px;"><%=dtbMenu.Rows[i]["MenuName"].ToString()%></span></div>
<div title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>" id="div_<%=dtbMenu.Rows[i]["MenuId"].ToString()%>" >
tree_load(dt.Rows[i][0].ToString());
}
else//子节点
{
<span style="height:100%;padding-left:5px;padding-top:5px;"><a href="<%=dtbMenu.Rows[i]["Flinkfile"].ToString()%>" target="main" title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>"><%=dtbMenu.Rows[i]["MenuName"].ToString()%></a></span><br />
tree_load(dt.Rows[i][0].ToString());
}
}
if ((i != 0 && i!=dtbMenu.Rows.Count-1 && dtbMenu.Rows[i+1]//一个菜单结尾["FParentID"].ToString().Equals("0"))|| (i==dtbMenu.Rows.Count-1))
{ </div>
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
tree_load("0);
}
}
protected void tree_load(string strValue)
{
DataTable dtbMenu= new DataTable();
dtbMenu= DataSource.execQuery();//取值 for (int i = 0; i < dt.Rows.Count; i++)
{
if (rootnode == "1")//根节点
{
<div title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>" id="_div_<%=dtbMenu.Rows[i]["MenuId"].ToString()%>" class="nav_column_dark" onclick="checkNav('<%=dtbMenu.Rows[i]["MenuId"].ToString()%>')">
<span style="height:100%;padding-left:5px;padding-top:5px;"><%=dtbMenu.Rows[i]["MenuName"].ToString()%></span></div>
<div title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>" id="div_<%=dtbMenu.Rows[i]["MenuId"].ToString()%>" >
tree_load(dt.Rows[i][0].ToString());
}
else//子节点
{
<span style="height:100%;padding-left:5px;padding-top:5px;"><a href="<%=dtbMenu.Rows[i]["Flinkfile"].ToString()%>" target="main" title="<%=dtbMenu.Rows[i]["MenuName"].ToString()%>"><%=dtbMenu.Rows[i]["MenuName"].ToString()%></a></span><br />
tree_load(dt.Rows[i][0].ToString());
}
}
if ((i != 0 && i!=dtbMenu.Rows.Count-1 && dtbMenu.Rows[i+1]//一个菜单结尾["FParentID"].ToString().Equals("0"))|| (i==dtbMenu.Rows.Count-1))
{ </div>
}
}
div+css可能画的更漂亮一些。