您的位置:首页 > 其它

MyTree树控件_Ajax实现异步加载节点

2010-05-20 21:35 363 查看
最近一直在寻找一个比较方便好用的树控件,MyTree树控件并没有提供很多其他的功能,但在Ajax异步加载节点上实现的很简洁,留作备忘。

MyTree的下载地址:http://www.itplus.com.cn/myTree/

下载后 Demo:Ajax异步加载例子
Document:文档
myTree:放项目里要引用的文件

MytreeTest.aspx页
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MytreeTest.aspx.cs" Inherits="VistaToNewSchol.MytreeTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script language="javascript" src="../myTree/myTree.js"></script>
<script language="javascript" src="../myTree/bingo.js"></script>
<script language="javascript">
var tree;
window.onload = function(){
tree = new myTree("myFirstTree", "divTree", "../myTree/", "Blue");
tree.dataFrom = "MyTreeGetNode.aspx"
tree.load();
}

function myFirstTree_onClick(prmNodeId){
tree.load(prmNodeId);
tree.expandNode(prmNodeId);
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div id="divTree"></div>

<div id="divStr"></div>
</form>
</body>
</html>

MyTreeGetNode.aspx.cs页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace VistaToNewSchol
{
public partial class MyTreeGetNode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int intId =-1;
if (Request.QueryString["parentId"] != null) //此处用parentId才能取的到值,应该是前台js为parentId赋的值,直接取出来就可以用了。
{
intId = Convert.ToInt32(Request.QueryString["parentId"].ToString());
}

string html = getNode(intId);
Response.Write(html);

Response.End();
}
}

//得到节点
public string getNode(int parentID)
{
string html = "";
StringBuilder strSql = new StringBuilder();
strSql.Append("select * ,(select count(metaId) from metadata where parentId=DB.metaId) AS SUBCOUNT ");
strSql.Append(" from dbo.metadata AS DB ");
strSql.Append(" where parentid=" + parentID + " ");
DataSet ds = VistaToNewSchol.DAL.DbHelperSQL.Query(strSql.ToString());

html += "[";
if (ds.Tables[0].Rows.Count > 0)
{
int count = 0;
foreach (DataRow row in ds.Tables[0].Rows)
{
if (count == 0)
{

}
else
{
html += ",";
}

html += "{";

html += "nodeId:'" + row["metaId"].ToString() + "',";
html += "caption:'" + row["metaName"].ToString() + "' ,";
html += "attach:{";
html += "subCount: '" + row["SUBCOUNT"].ToString() + "',";//子节点个数
html += "url:'#n' ";
html += "}";

html += "}";

count++;
}
}

html += "]";
return html;

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: