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;
}
}
}
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;
}
}
}
相关文章推荐
- JsTree树控件_Ajax异步加载节点且有各种各样的功能
- ajaxpro.dll 控件实现异步刷新页面
- 用jQuery实现asp.net 2.0 treeview控件完全无刷新操作实例(AJAX的增、删、改、选择以及展开收缩节点)
- ajaxpro.dll控件实现异步刷新页面
- SharePoint 实现ajax异步加载数据的几种方式
- ThinkCMF中如何实现ajax异步加载
- 原生js实现ajax异步加载
- TreeView 控件树节点 TreeNode 的异步加载及对节点 CHECKBOX 的多选控制
- [Silverlight入门系列]Prism中TreeView真正实现MVVM模式和Expanded发生时异步动态加载子节点(WCFRiaService)
- Ajax 之使用 XMLHttp实现简单的异步数据加载
- 打造Android集合控件数据绑定(支持添加监听,支持AbsListView与RecycleView,支持异步加载等)(三)具体实现
- 微软treeview控件异步加载实现方式
- 【easyui】treeGrid实现分页以及异步加载子节点
- TreeView 控件树节点 TreeNode 的异步加载及对节点 CHECKBOX 的多选控制
- ajaxpro.dll 控件实现异步刷新页面
- jQuery加载外部文件的方式get、post、ajax、load的区别及异步加载的实现
- c#,jquery easy ui通过ajax实现异步加载tree
- 通过ajax实现对某个div的整体刷新替换(异步加载)
- ztree实现异步加载(点击节点,请求后台数据,添加数据到对应节点)
- 用jQuery的AJax实现异步访问、异步加载