查询系统所有存储过程,并以树形结构显示
HTML:
C#:
SqlConnection conn = new SqlConnection(@"server=192.168.1.102;uid=sa;pwd=123;database=test;");//
![](/Images/OutliningIndicators/None.gif)
protected string treeHtml = string.Empty;
![](/Images/OutliningIndicators/None.gif)
protected void Page_Load(object sender, EventArgs e)
{
CreateDivTree();
}
![](/Images/OutliningIndicators/None.gif)
protected void CreateDivTree()
{
List<string> leftNames = new List<string>();
![](/Images/OutliningIndicators/InBlock.gif)
string sql = "select [name] from [sysObjects] where [xtype] = 'p' order by [name]";
![](/Images/OutliningIndicators/InBlock.gif)
DataTable dt = SqlHelper.ExecuteDataset(conn,CommandType.Text,sql).Tables[0];
![](/Images/OutliningIndicators/InBlock.gif)
int rowCount = dt.Rows.Count;
![](/Images/OutliningIndicators/InBlock.gif)
if (rowCount > 0)
{
string leftName=string.Empty;
![](/Images/OutliningIndicators/InBlock.gif)
string name=string.Empty;
![](/Images/OutliningIndicators/InBlock.gif)
string nameUpper = string.Empty;
![](/Images/OutliningIndicators/InBlock.gif)
foreach (DataRow row in dt.Rows)
{
name = row["name"].ToString();
![](/Images/OutliningIndicators/InBlock.gif)
nameUpper = name.ToUpper();
![](/Images/OutliningIndicators/InBlock.gif)
if (name.IndexOf("_") > 0)
{
leftName = nameUpper.Substring(0, nameUpper.IndexOf("_"));
}
else
{
leftName = nameUpper.Substring(0, 1);
}
![](/Images/OutliningIndicators/InBlock.gif)
if (leftName == "DT" || leftName == "SP")
{
continue;
}
![](/Images/OutliningIndicators/InBlock.gif)
if (!leftNames.Contains(leftName))
{
leftNames.Add(leftName);
treeHtml += string.Format("<B>{0}</B>", leftName);
treeHtml += string.Format("<A>{0}</A>", name);
}
else
{
treeHtml += string.Format("<A>{0}</A>", name);
}
}
}
![](/Images/OutliningIndicators/InBlock.gif)
}
以前也做过类似的程序,但代码较多,加载速度较慢.
这次进行了优化,代码很少,速度很快.
1
<style type="text/css">
2
body{font-size:9pt;}
3
a{margin-top:1px;width:100px;float:left;clear:both;cursor:hand;border:1px solid gray;margin-left:5px;color:black;text-decoration:none;padding-left:3px;}
4
b{margin-top:1px;width:100px;float:left;clear:both;cursor:pointer;border:1px solid gray;padding-left:3px;}
5
</style>
6![](/Images/OutliningIndicators/None.gif)
7
<%=treeHtml %>
8
<script type="text/javascript">
9
var B_tag=document.getElementsByTagName("B");
10
for(var i=0;i<B_tag.length;i++)
11
{
12
B_tag[i].onclick=function (){
13
change(event.srcElement);
14
}
15
}
16
17
var A_tag=document.getElementsByTagName("A");
18
for(var i=0;i<A_tag.length;i++)
19
{
20
A_tag[i].href="";
21
A_tag[i].target="";
22
A_tag[i].style.display="none" ;
23
}
24
function change(obj)
25
{
26
27
var myObj=obj.nextSibling;
28
while(myObj.tagName!="B" && myObj.tagName!="SCRIPT")
29
{
30
if(myObj.tagName=="A")
31
{
32
myObj.style.display=(myObj.style.display=="none" || myObj.style.display=="")?"block":"none";
33
}
34
myObj=myObj.nextSibling;
35
}
36
}
37
</script>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
3
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
36
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
37
![](/Images/OutliningIndicators/None.gif)
C#:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
以前也做过类似的程序,但代码较多,加载速度较慢.
这次进行了优化,代码很少,速度很快.