ASP+SQL 2005 显示部门人员结构组织?

sunboy_163 2010-09-20 10:33:34
-----------------------------------
表名:bmgl
-----------------------------------
bm_id bm_root_id bm_name
-----------------------------------
131 0 软件部
132 0 市场部
133 0 研发部
134 131 软件一部
135 131 软件二部
137 133 项目小组一
138 133 项目小组二
139 138 java团队
140 138 数据库团队


-------------------------------------
如何用asp+sql 2005显示下列树型结构?
-------------------------------------
树型部门结构
-------------------------------------
软件部
软件一部
软件二部
市场部
研发部
项目小组一
项目小组二
java团队
数据库团队

-----------------------------------------------------
最终实现效果:
-------------------------------------------------------
<select name="bmgl">
<option value="131" selected>软件部</option>
<option value="134">--软件一部</option>
<option value="135">--软件二部</option>
<option value="132">市场部</option>
<option value="133">研发部</option>
<option value="137">--项目小组一</option>
<option value="138">--项目小组二</option>
<option value="139">----java团队</option>
<option value="140">----数据库团队</option>
</select>
-------------------------------------------------------
...全文
138 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
递归的,自己再论坛搜索一堆
sunboy_163 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chinaxthulang 的回复:]
不就是个二级分类列表吗?很难吗?先查询表条件bm_root_id=0 大类。循环的时候。再查询表bm_root_id=大类ID就可以了。
[/Quote]

不是二级,是无限级~~要用递归。
ChinaXtHuLang 2010-09-20
  • 打赏
  • 举报
回复
不就是个二级分类列表吗?很难吗?先查询表条件bm_root_id=0 大类。循环的时候。再查询表bm_root_id=大类ID就可以了。
sunboy_163 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zouli1991321 的回复:]
TreeView空间可以实现 数据绑定
[/Quote]

是asp,不是asp.net!!!
zouli1991321 2010-09-20
  • 打赏
  • 举报
回复

TreeView空间可以实现 数据绑定
lionz1023 2010-09-20
  • 打赏
  • 举报
回复
这个是你要的select 树形下拉列表

sub list()
set rs=server.CreateObject("adodb.recordset")
sql="Select * from u_big order by rootid"
rs.Open sql,conn,1,3
do while not rs.EOF
tempcataStr="<option value='"&trim(rs("rootid"))&"'"
if rs("id") = mcataid then tempcataStr = tempcataStr&" selected "
tempcataStr = tempcataStr&">"
tempcataStr = tempcataStr&" | |"
for i=1 to rs("level")-1
tempcataStr = tempcataStr&" |"
next
tempcataStr = tempcataStr&"_"&trim(rs("u_name"))&"</option>"
Response.Write tempcataStr
rs.MoveNext
loop
rs.Close()
set rs=nothing
end sub

<select name="c_big" onChange="check();" style="background-color:#EBEBEB; color:#000">
<option value='' selected>--请选择栏目--</option>
<%call list()%>
</select>
lionz1023 2010-09-20
  • 打赏
  • 举报
回复
数据表结构
Id int Unchecked
u_name nvarchar(50) Checked
[level] int Checked
time datetime Checked
rootid nvarchar(50) Checked
rootname nvarchar(50) Checked
orderid int Checked
bak3 nchar(10) Checked
lionz1023 2010-09-20
  • 打赏
  • 举报
回复
给你个成型的
完全符合你的要求
add_sort.asp

<META http-equiv=Content-Type content="text/html; charset=gb2312"><!--导航开始-->
<!--#include file="conn.asp"-->
<%
getid=trim(Request.querystring("cataid"))
rootid=trim(request.QueryString("rootid"))
if getid="" or getid="0" or isNumeric(getid)=false then
mtitle="根栏目"
mtime = "当前日期:"&date()
getid ="0"

else
set rs=server.CreateObject("adodb.recordset")
sql="Select u_name,time,rootname,orderid from u_big where id="&getid
rs.Open sql,conn,1,3
if not rs.EOF then
mtitle = rs("u_name")
mtime = "创建于:"&rs("time")
end if
rs.close
set rs=nothing
end if
%>

<%
doid = trim(Request.querystring("doid"))
action = trim(Request.querystring("action"))
dotitle = trim(Request.form("cat_mod_name"))
addtitle = trim(Request.form("cat_add_name"))
rootid=request.QueryString("rootid")
select case action
case "edit"
if dotitle="" then
response.write "<script language=javascript>"
response.write "alert('请正确填写栏目名称!');location.href='add_sort.asp'"
response.write "</script>"
else
t=request.QueryString("t")
sql="update u_big set u_name='"&dotitle&"' where id="&doid
conn.execute sql
set rs=server.CreateObject("adodb.recordset")
sql="Select id,rootname from u_big where rootname like '"&t&",%' or rootname like '%,"&t&"' or rootname='"&t&"' or rootname like '%,"&t&",%'"
rs.Open sql,conn,1,3
do while not rs.eof
rs("rootname")=replace(rs("rootname"),t,dotitle)
if rs("id")=doid then
rs("u_name")=dotitle
end if
rs.update
rs.movenext
loop
rs.close
set rs=nothing
response.write "<script language=javascript>"
response.write "alert('栏目修改成功!');location.href='add_sort.asp'"
response.write "</script>"
end if
case "add"
if addtitle="" then
response.write "<script language=javascript>"
response.write "alert('请填写栏目名称!');location.href='add_sort.asp'"
response.write "</script>"
else
set rs=server.CreateObject("adodb.recordset")
sql="Select rootid,level,rootname from u_big where id="&doid
rs.Open sql,conn,1,3
if not rs.EOF then
arootid = rs("rootid")
alevel = rs("level")
rootname=rs("rootname")&","
else
arootid = ""
alevel = "0"
rootname=""
end if
rs.close
set rs=nothing
'开始添加栏目
if arootid = "" then
rid = "*"
else
rid =arootid&",*"
end if
if arootid<>"" then
session("rootid")=arootid
else
session("rootid")="*"
end if
sql="insert into u_big(u_name,level,rootname,rootid,time,orderid) values ('"&addtitle&"',"&alevel+1&",'"&rootname&addtitle&"','"&rid&"','"&now()&"',0)"
conn.execute sql
set rscc=server.CreateObject("adodb.recordset")
sqlcc="select * from u_big where rootid='"&rid&"' and u_name='"&addtitle&"'"
rscc.open sqlcc,conn,1,3
gid = rscc("id")
groot = rscc("rootid")
c_groot = replace(groot,"*",gid)
rscc("rootid") =c_groot
rscc("orderid")=gid
rscc.update
rscc.close
set rscc=nothing
response.write "<script language=javascript>"
response.write "alert('栏目添加成功!');location.href='add_sort.asp'"
response.write "</script>"
end if
case "del"
sql="delete from u_big where rootid like '"&rootid&",%' or rootid='"&rootid&"'"
conn.execute sql
sql="delete from u_info where u_rootid like '"&rootid&",%' or u_rootid='"&rootid&"'"
conn.execute sql
response.write "<script language=javascript>"
response.write "alert('类别删除成功,类别对应的信息和包含的图片同时删除!');location.href='add_sort.asp'"
response.write "</script>"
end select
%>
<script language="JavaScript">
<!--
function dodel(){
if (confirm("注意:删除一个栏目,其下面的所有子栏目和信息将全部被清空,\n您确定要进行此操作吗?"))
{
document.del.submit();
}
}
//-->
</script>
<!--导航结束-->
<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
body,td,th {
font-size: 12px;
}
a:link {
color: #000000;
text-decoration: none;
}
a:visited {
color: #000000;
text-decoration: none;
}
a:hover {
color: #000000;
text-decoration:underline;
}
a:active {
color: #000000;
text-decoration: none;
}
-->
</style>
</HEAD>
<BODY>
<CENTER><!-- 用<BODY onload=initial()>替换原有的<body> -->
<table width="99%" border="1" bordercolorlight="#326598" bordercolordark="#ffffff" cellspacing="0" cellpadding="3">
<tr>
<td width="14%" align="center"><a href="add_sort.asp" style="color:red;">新闻类别录入</a>  |   <a href="add_info.asp">新闻信息录入</a>  |   <a href="manage_info.asp">新闻信息管理</a> </td>
</tr>
<tr>
<td height="329" align="center" valign="top">
<table width="96%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="54%">
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td bgcolor="#EFEFEF">
<table width="96%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="10"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td style="BORDER-LEFT: #8A8A8A 1px solid; LINE-HEIGHT: 20px" bgcolor="#FFFFFF" valign="top" height="360">
 <a href="?cataid=0" style="color:red;">根目录</a><br>
<%
set rs=server.CreateObject("adodb.recordset")
sql="Select level,id,u_name,rootid from u_big order by rootid"
rs.Open sql,conn,1,3

do while not rs.EOF
tempcataStr=" <font color=#996633>| |</font>"
for i=1 to rs("level")-1
tempcataStr = tempcataStr&" <font color=#996633>|</font>"
next

tempcataStr = tempcataStr&"<font color=#996633>_</font> <a href=?cataid="&trim(rs("id"))&"&rootid="&trim(rs("rootid"))&"><font color=#222>"&trim(rs("u_name"))&"</font></a><br>"

Response.Write tempcataStr
rs.MoveNext
loop
rs.Close()
set rs=nothing
%>
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="46%" align="center" valign="top" background="pic/1.gif"><br>
<table width="90%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td ><fieldset><legend>信息统计</legend>
    栏目名称:<%=mtitle%><br><br>    <%=mtime%><br><br>
</fieldset></td>
</tr>
<form name="modify" method="post" action="?action=edit&doid=<%=getid%>&t=<%=server.URLEncode(mtitle)%>">
<tr>
<td align="center"><br>
<fieldset> <legend>修改当前类别</legend><br>
<input name="cat_mod_name" type="text" class="button1" value="<%=mtitle%>" size="16">
<input type="submit" value=" 修 改 " name="mod_submit" class="button2">
<br>
<br>
</fieldset> </td>
</tr>
</form>
<form name="addcata" method="post" action="?action=add&doid=<%=getid%>">
<tr>
<td align="center" height="90"> <br>
<fieldset>
<legend>添加子类别</legend><br>
<input type="text" name="cat_add_name" class="button1" value="" size="16">
<input type="submit" value=" 添 加 " name="add_submit" class="button2">
<br>
<br>
</fieldset> </td>
</tr>
</form>
<form name="del" method="post" action="?action=del&doid=<%=getid%>&rootid=<%=rootid%>">
<tr>
<td height="60" align="center"> <br>
<input type="button" name="del_submit" value="删除当前类" class="button2" onClick="dodel()">
<br>
<font color="#FFFFFF">(注意:删除一个栏目,其下面的所有子栏目和新闻将全部清空,请慎重操作!)</font></td>
</tr>
</form>
</table>
<script language=javascript>
<!--
if (abc=<%=getid%> < 1)
{
document.modify.mod_submit.disabled = true;
document.del.del_submit.disabled = true;
}
else
{
document.modify.mod_submit.disabled = false;
document.del.del_submit.disabled = false;
}
-->
</script></td>
</tr>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>

</table>
</CENTER></BODY></HTML>
<%
CloseConn()
%>
leuone 2010-09-20
  • 打赏
  • 举报
回复
<%function streelist(id,kk)
set sRs=server.createobject("adodb.recordset")
sql="select bm_id,bm_name,(select count(bm_id) from bmgl where bm_root_id= dtree.bm_id) as children from bmgl dtree where bm_root_id="&bm_id&" order by bm_id asc"
set sRs=conn.execute(sql)
while not sRs.eof
streelist=streelist&"<option value="""&sRs(0)&""" "
streelist=streelist&">"
if kk>0 then
for i=1 to kk
streelist=streelist&"│ "
next
end if
'if sRs(2)=1 then
''hides="■"
'else
hides=""
'end if
if kk=0 then
streelist=streelist&"╋"&sRs(1)&hides&"</option>"
else
streelist=streelist&"├"&sRs(1)&hides&"</option>"
end if
if sRs(3)>0 then streelist=streelist&streelist(sRs(0),kk+1)
sRs.movenext
wend
sRs.close
end function %>



<%response.write"<select name=infoclass class='input1' size='1' id='infoclass'>"
response.write"<option value='0'>选择类别</option>"
response.write streelist(0,0)
response.write"</select>" %>


按照这个思路试试

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧