ASP.NET基于JQUERY的高性能的TreeView

根据 假正经哥哥 的博客整理,我第一次使用的另外的TREEVIEW,可是 做出来的效果 太卡,不知道什么原因。这次用的假正经哥哥的这篇文章。

下面贴上完整的代码,我走了很多弯路,原因就是看了回复中朋友们的代码,现在想起来其实不用那么费事吧。

引用

代码
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
    
<script src="js/jquery.mytree.js" type="text/javascript"></script>
    
<link href="second.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
       $(function(){
        var o = { showcheck: true};
                    o.data =<%=treeNodes %>;
                   
                    $("#tree").treeview(o);
       })
    </script>

后台

代码
 public string GetFirJson()
    {
        
string mystr = "[";
        DataTable dt 
= DBUtility.db.ExecuteTable("select * from class where parientid=0");
        
int a = dt.Rows.Count;
        
for (int i = 0; i <= dt.Rows.Count - 1; i++)
        {

            mystr 
+= GetOtherJson(Convert.ToInt32(dt.Rows[i]["classid"].ToString())) + ",";
        }
        mystr = mystr.Substring(0, mystr.Length - 1);
        mystr 
+= "]";
        mystr 
= mystr.Replace("'""\"");
        return mystr;

    }
    
//递归
    private string GetOtherJson(int pid)
    {
        DataTable dt 
= DBUtility.db.ExecuteTable("select * from class where classid=" + pid);
        
string strjson = "";
        
bool haschild = IsHasChild(pid);
        strjson 
= "{";
        strjson 
+= "'id':'" + pid + "',";
        strjson 
+= "'text':'" + dt.Rows[0]["classname"].ToString() + "',";
        strjson 
+= "'value':'" + dt.Rows[0]["classid"].ToString() + "',";
        strjson 
+= " 'showcheck':true,";
        strjson 
+= " 'complete':true,";
        strjson += "'checktate':0,";
        strjson 
+= "'hasChildren':" + haschild.ToString().ToLower() + ",";
        strjson 
+= "'ChildNodes':";

        
if (!IsHasChild(pid))
        {
            strjson 
+= "null}";
        }
        
else
        {
            strjson 
+= "[";
            DataTable mydt 
= DBUtility.db.ExecuteTable("select * from class where parientid=" + pid);
            
for (int i = 0; i <= mydt.Rows.Count - 1; i++)
            {
                strjson 
+= GetOtherJson(Convert.ToInt32(mydt.Rows[i]["classid"].ToString())) + ",";
            }
            strjson 
= strjson.Substring(0, strjson.Length - 1);
            strjson 
+= "]}";

        }
        
return strjson;
    }

    
private bool IsHasChild(int pid)
    {
        DataTable dt 
= DBUtility.db.ExecuteTable("select * from class where parientid=" + pid);
        
if (dt.Rows.Count == 0)
        {
            
return false;
        }
        
else
        {
            
return true;
        }
    }

最后数据库 大家看着建就行了 再次 感谢 不正经哥哥  感谢回复的朋友们

原文地址:https://www.cnblogs.com/danyingjie/p/1958393.html