static void Main(string[] args)
{
string conStr = ConfigurationManager.ConnectionStrings["ConsoleApplication1.Properties.Settings.FMS_AConnectionString"].ToString();
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlDataAdapter dap = new SqlDataAdapter("select mid,featherId,mName from Menue with(nolock)", con);
DataTable dt = new DataTable();
dap.Fill(dt);
con.Close();
string result= GetTreeNode(dt);
Console.WriteLine(result);
}
private static string GetTreeNode(DataTable dt) {
string result = string.Empty;
try
{
DataRow[] dView = dt.Select("featherId=0");
List<treeNode> _treeNodeList = new List<treeNode>();
foreach (DataRow dr in dView)
{
_treeNodeList.Add(new treeNode() {
id = int.Parse(dr["mid"].ToString()),
pid = int.Parse(dr["featherId"].ToString()),
text = dr["mName"].ToString(),
children = GetChildrenTreeNode(int.Parse(dr["mid"].ToString()), dt)
});
result = JsonConvert.SerializeObject(_treeNodeList);
}
}
catch (Exception e)
{
result = e.Message;
}
return result;
}
/// <summary>
///
/// </summary>
/// <param name="mid">唯一值(主键)</param>
/// <param name="featherId">父Id</param>
/// <param name="dt"></param>
/// <returns></returns>
private static List<treeNode> GetChildrenTreeNode(int mid, DataTable dt) {
DataRow[] dView = dt.Select("featherId="+mid);
List<treeNode> _childrenList = new List<treeNode>();
foreach (DataRow dr in dView)
{
_childrenList.Add(new treeNode() {
id = int.Parse(dr["mid"].ToString()),
pid = int.Parse(dr["featherId"].ToString()),
text = dr["mName"].ToString(),
children = GetChildrenTreeNode(int.Parse(dr["mid"].ToString()), dt)
});
}
return _childrenList;
}
public class treeNode {
public int id { get; set; }
public int pid { get; set; }
public string text { get; set; }
public List<treeNode> children { get; set; }
}
c#递归生成web界面Tree的json数据
最新推荐文章于 2022-08-10 11:35:57 发布