对“打造基于jQuery的高性能TreeView”的扩展
2009-10-28 00:00:00 来源:WEB开发网这是一个递归的方法,很简单。当然在调用时,我们可以更简单一点,因为第一级的分类的父ID都是从0开始的(呵呵我的这个表的逻辑是这样的:)),而且我们只需要传入 DataTable 就行了,所以我们重载一下:
/**//// <summary>
/// 由DataTable 生成树类
/// </summary>
/// <param name="ti">要装载的树类根节点</param>
/// <param name="dt">数据表</param>
/// <param name="sId">父类ID</param>
/// <returns></returns>
public static TreeItem GetTreeItemFromDataTable(this TreeItem ti, DataTable dt, string sId)
{
return ti.GetTreeItemFromDataTable(dt.AsEnumerable(), sId);
}
3、 使用
我们添加一个新的处理程序 GetTreeDataFromDB.ashx ,并在其中添加如下代码:
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
//获取数据库中的分类数据
DataSet ds=new DataSet();
try
{
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM [TreeList]", ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
da.Fill(ds);
TreeItem ti = new TreeItem() { id = 0, text = "所有选项", value = "0", isexpand=true};
ti.GetTreeItemFromDataTable(ds.Tables[0], "0");
context.Response.Write( ti.ToJsonString());
//tdata.SelectItem(new int[] { 2, 3, 4, 5, 6, 7, 8 });
}
catch
{
context.Response.Write("var treedata=null;");
}
}
更多精彩
赞助商链接