数据表结构如下:
classid ParenteClassid
1 A
2
3 1
A
4
比如.传入参数A,开始进行遍历.谢谢大家,请帮忙~
classid ParenteClassid
1 A
2
3 1
A
4
比如.传入参数A,开始进行遍历.谢谢大家,请帮忙~
解决方案 »
- 主外表显示具体信息数据
- web.config 问题
- 跪求world 导入 SQL??
- 学习C#.NET SQL2000一年刚到上海找工作容易吗?
- ORACLE中怎么处理如果参数为空出现异常的情况
- 请教,为什么用强制转化方式将从Session中获得的DOMDocumentClass 对象实体还原不了? 谢谢!!!
- WEBGRID如何冻结几行几列,象OWC控件的冻结行列一样?谢谢
- 请教ASP.NET 如何在客户端根据获取变量执行不同的操作!
- 求asp.net下的文本编辑器控件
- 急:为什么服务器控件都不能显示啊???
- vb.net進行web開發時,關於datagrid挑戰性的問題
- 用application对象做最简单的聊天室,只要10人以内能聊就可以了,请问不用frame,如何做到使客户端比较快速看到发言?
sql="select * from Menus where ParentID="& Pid
set rs=conn.execute(sql)
strIndent = " "
do while not rs.eof
if rs("ParentID")=0 then
str = "<DIV ID='menu"& rs("ID") &"' Class='MenuItemIE2' OnClick='ShowHidden("& rs("ID") &","& rs("ID") &")' OnMouseOver='HighlightMenuItem("& rs("ID") &")' OnMouseOut='NormalMenuItem("& rs("ID") &")'>"
str =str & strIndent
str =str & "<IMG BORDER=0 ID='MenuItemImg"& rs("ID") &"' SRC='../Images/menuplus.gif'>"
str =str & rs("Txt")
str =str & "</DIV>"
response.write(str)
else
str = "<DIV ID='menu"& rs("ID") &"' CLASS='MenuItemIE' ONCLICK=top.MainFrame.location='"& rs("Url") &"' OnMouseOver='HighlightMenuItem("& rs("ID") &")' OnMouseOut='NormalMenuItem("& rs("ID") &")'>"
str =str & strIndent & strIndent
str =str & "<IMG BORDER=0 SRC='../images/transparent.gif' WIDTH=12 HEIGHT=12>"
str =str & rs("Txt")
str =str & "</DIV>"
response.write(str)
end if
sql1="select ID from Menus where ParentID="& rs("ID")
set rs1=conn.execute(sql1)
if not rs1.eof then
response.write("<div ID='show"& rs("ID") &"' style='display:none'>")
ShowMenu(rs("ID"))
response.write("</div>")
end if
set rs1=nothing
rs.movenext
loop
set rs=nothing
end function
其实方法是这样的:
1,传入参数,查找
2,遍历所有找到的行
3,如果行的内部还存在子ID,那么重新执行这个函数
DataTable m_DataTable = new DataTable();
DataColumn dc = null;dc = new DataColumn();
dc.DataType = Type.GetType("System.String");
dc.ColumnName = "classid";
m_DataTable.Columns.Add(dc);dc = new DataColumn();
dc.DataType = Type.GetType("System.String");
dc.ColumnName = "ParenteClassid";
m_DataTable.Columns.Add(dc);// 递归,把过滤出来的数据添加到新建的 m_DataTable 里。
void FilterData(string classid)
{
DataRow[] foundRow = dt.Select("classid='" + classid + "'");
for(int i=0;i<foundRow.Length;i++)
{
DataRow dr = m_DataTable.NewRow();
dr["classid"] = foundRow[i]["classid"].ToString();
dr["ParenteClassid"] = foundRow[i]["ParenteClassid"].ToString(); m_DataTable.Rows.Add(dr);
FilterData(dr["ParenteClassid"].ToString());
}
}
{
string strSQL = "select * form Menus where ParenteClassid=''";
DataSet myDS = ExecuteDataSet(strSQL);
foreach(System.Data.DataRow row in myDS.Tables[0].Rows)
{
ListItem item = new ListItem(row["name"],row["name"]);
//add(item);
BindSub(row["classid"].ToString(),1);
}
}
private string space="---------------------------------";
private void BindSub(string parentid,int number)
{
string strSQL = "select * form Menus where ParenteClassid='" + parentid +"'";
DataSet myDS = ExecuteDataSet(strSQL);
foreach(System.Data.DataRow row in myDS.Tables[0].Rows)
{
//添加ListItem
string name = "|"+ space.Substring(0,number) + row["name"];
ListItem item = new ListItem(name,row["name"]);
//add(item);
BindSub(row["classid"].ToString(),number+1);
}
}
private void DropDownListName_Load(object sender, System.EventArgs e)
{
DDList_TreeView.Items.Clear() ; ADHelper m_ADHelper = new ADHelper() ;
DirectoryEntry m_DirectoryEntry = m_ADHelper.GetDiectoryEntryByLDAPDN("OU=oa") ; string m_Test = m_DirectoryEntry.Properties["ou"].Value.ToString() ;
string m_Value = m_DirectoryEntry.Path ; //LDAP://skyctd/OU=oa,DC=skyctd,DC=com
ListItem m_ListItem = new ListItem(m_Test, m_Value) ;
DDList_TreeView.Items.Add(m_ListItem) ; string m_Temp = " ┼" ; foreach( DirectoryEntry m_ChildEntry in m_DirectoryEntry.Children)
{
if(m_ChildEntry.SchemaClassName.Equals("organizationalUnit"))
{
m_Test = m_ChildEntry.Properties["ou"].Value.ToString() ;
m_Value = m_ChildEntry.Path ;
m_ListItem = new ListItem(m_Temp + m_Test, m_Value) ;
DDList_TreeView.Items.Add(m_ListItem) ;
m_Levels = 1 ;
CreateTree(m_ChildEntry) ;
}
}
// Response.Write("Success!") ;
} private void CreateTree(DirectoryEntry destDirectoryEntry)
{
m_Levels++ ;
string m_Temp = " " ;
for(int i = 1; i < m_Levels; i++)
{
m_Temp = m_Temp + " " ;
}
m_Temp = m_Temp + "├" ;
foreach( DirectoryEntry m_ChildEntry in destDirectoryEntry.Children)
{
if(m_ChildEntry.SchemaClassName.Equals("organizationalUnit"))
{
string m_Test = m_ChildEntry.Properties["ou"].Value.ToString() ;
string m_Value = m_ChildEntry.Properties["distinguishedName"].Value.ToString() ;//LDAP://skyctd/OU=oa,DC=skyctd,DC=com
ListItem m_ListItem = new ListItem(m_Temp + m_Test, m_Value) ;
DDList_TreeView.Items.Add(m_ListItem) ;
CreateTree(m_ChildEntry) ;
}
}
}