基於Jquery tree 的一些技術想法

  Jquery tree 如果用自帶的樣式做的話會顯示+ - ... 這些樣式。但是在實際設計中我們可能會自定義樣式,通過這些天的研究,我終於做出了基於Jquery tree的自定義樹。自定義了收縮事件。
  屁話不多說,上代碼: protected void Page_Load(object sender, EventArgs e) { string sqlCmd = "Select * from Special_NewsCatalog where SortID=" + Request.Params["SortID"].ToString() + " and ParentID=0 Order By Location"; DataTable dtThrid = DbHelperSQL.Query(sqlCmd).Tables[0]; StringBuilder sb = new StringBuilder(); sb.Append("["); foreach (DataRow dr in dtThrid.Rows) { sb.Append("{"); sb.Append("text:' " + (dr["CatalogName"].ToString().Length > 12 ? dr["CatalogName"].ToString().Substring(0, 12) + "..." : dr["CatalogName"].ToString()) + "',"); sb.Append("expanded: true,"); sb.Append("id:'" + dr["CatalogID"].ToString() + "'"); AddChildrenNode(GetChildNodes(dr["CatalogID"].ToSt ring()), sb); sb.Append("}"); } sb.Append("]"); string s = sb.ToString(); s = s.Replace("}{", "},{"); Response.Write(s); } private DataTable GetChildNodes(string parentID) { string sqlCmd = "Select * from Special_NewsCatalog where ParentID=" + parentID + " Order By Location"; DataTable dtChildren = DbHelperSQL.Query(sqlCmd).Tables[0]; return dtChildren; } private void AddChildrenNode(DataTable dt, StringBuilder sb) { if (dt.Rows.Count > 0) { string tag = "0"; sb.Append(",children:["); foreach (DataRow dr in dt.Rows) { string subimg = ""; string addimg = ""; string finImg = ""; DataTable tempData = DbHelperSQL.Query("Select count(*) from Special_NewsCatalog where ParentID=" + dr["CatalogID"].ToString()).Tables[0]; if (tempData.Rows[0][0].ToString() != "0") { finImg = addimg; tag = "1"; } else { finImg = subimg; tag = "0"; } Regex num = new Regex("/"); int count = (num.Matches(dr["Location"].ToString()).Count) * 10 + 5; sb.Append("{"); sb.Append("text:' " + (dr["CatalogName"].ToString().Length > 12 ? dr["CatalogName"].ToString().Substring(0, 10) + "..." : dr["CatalogName"].ToString()) + "',"); sb.Append("expanded: true,"); sb.Append("id:'" + dr["CatalogID"].ToString() + "'"); AddChildrenNode(GetChildNodes(dr["CatalogID"].ToSt ring()), sb); sb.Append("}"); } sb.Append("]"); } } 以上是生成一客Json 樹。
  接下去,我們運用強大的JS 進行處理 0) { obj.src="/images/sub.gif" ; if (ul.style.display=='none' ) { ul.style.display='block'; zkg=false; } } else { obj.src="/images/add.gif" ; if (ul.style.display=='block' ) { ul.style.display='none'; zkg=true; } } } } var canback=0; function changeSrc(id,sortID,tag) { if(canback==0) { var text= document.getElementById("ctl00_ContentPlaceHolder1 _lblSecond").innerText; document.getElementById("ctl00_ContentPlaceHolder1 _lblSecond").innerHTML="返回"+text+"首頁"; canback=1; } document.getElementById("iframeNewsInfo").src="Spe cialInfo.aspx?CatalogID="+id+"&&SortID="+sortID+"&& rm="+Math.random(); } function returnBack(id,text) { canback=0; document.getElementById("ctl00_ContentPlaceHolder1 _lblSecond").innerText=text; document.getElementById("iframeNewsInfo").src="/Sp ecial/IFream.aspx?SortID="+id; } function SetWinHeight(obj) { var win=obj; if (document.getElementById) { if (win && !window.opera) { if (win.contentDocument && win.contentDocument.body.offsetHeight) win.height = win.contentDocument.body.offsetHeight; else if(win.Document && win.Document.body.scrollHeight) win.height = win.Document.body.scrollHeight; } } } function getElementsByClassName(n) { var classElements = [],allElements = document.getElementsByTagName('*'); for (var i=0; i 摺疊目錄 朋友有問題可以和我交流QQ:176620043
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章