一個簡單問題 TreeView 如何實現三層?謝謝~
解决方案 »
- 请教下,在web中怎么解决一个账号同一时间只允许一个人登录的问题??
- 求逆运算 现在有文件转换为字符串的函数 我想转换回来
- AspNetPager 分页控件问题
- 关于datatable的问题
- 用.Net 2.0的角色管理,Roles出问题了,救急!!!
- 对路径“c:\windows\system32\inetsrv\201203161002528289_2.rar”的访问被拒绝。求解
- 如何禁止窗体拖动?(高分请教)
- 急,请教,我用了一个html_edit的控件可以提交html格式的内容,但是提交内容为空。争取今天结贴
- 求解一个难题.我想在page_load中引用<script language=javascript></script>中的变量
- asp.net中有没有vb.70中的类似datatimepicker控件
- 难题高分求解:正则式匹配无异常但是资源耗尽
- 商品列表怎样显示?
表BIG_TYPE: 表MID_TYPE: 表SMALL_TYPE:
BIG_ID MID_ID SMALL_ID
BIG_NAME MID_NAME SMALL_NAME
BIG_ID MID_ID
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
treevieww();
}
} private void treevieww()
{
DbConn cnn = new DbConn();
SqlConnection conn = cnn.connection();
string sql = "select * from BIG_TYPE select * from MID_TYPE select * from SMALL_TYPE";
SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet();
da.Fill(ds); TreeNode[] tn = getMenu(0, ds);
foreach (TreeNode tnn in tn)
{
TreeView1.Nodes.Add(tnn);
}
conn.Close(); } TreeNode[] getMenu(int pid, DataSet ds)
{
DataView dv = ds.Tables[0].DefaultView;
//dv.RowFilter = "PID=" + pid.ToString();
int i = 0;
TreeNode[] tn = new TreeNode[dv.Count]; //一级项循环
foreach (DataRowView drv in dv)
{
tn[i] = new TreeNode(drv["BIG_NAME"].ToString(), drv["BIG_ID"].ToString()); //使用递归方式插入下级菜单的数组
getMenu(int.Parse(tn[i].Value.ToString()), ds, tn[i]); i++;
} return tn;
}
//递归过程
void getMenu(int pid, DataSet ds, TreeNode tn)
{
DataView dv = ds.Tables[1].DefaultView;
//dv.RowFilter = "PID=" + pid.ToString(); //当前项循环
foreach (DataRowView drv in dv)
{
TreeNode tn0 = new TreeNode(drv["MID_NAME"].ToString(), drv["MID_ID"].ToString()); //插入下级项
tn.ChildNodes.Add(tn0); //递归调用
//getMenu(int.Parse(drv["BIG_ID"].ToString()), ds, tn0);
} }
表MID_TYPE: MID_ID , MID_NAME , BIG_ID
表SMALL_TYPE: SMALL_ID ,SMALL_NAME , MID_ID