// ----------------------------------------------------------------------- // 取Select数据
string Sql = "Select Class_Id As Id,Class_Name as text,Father_Id as fatherid,Tree_Sub,Tree_End,Id as children from Sys_Class"
+ " Where Deleted<>1 or Deleted is Null order by Tree_Sort";
Sql_Class SqlClass = new Sql_Class();
SqlDataReader dr = SqlClass.Sql_Select(Sql);
StringBuilder jsonString = new StringBuilder();
//jsonString.Append("{"); // 总括号 -- 开始
//jsonString.Append('"' + "Total" + '"' + ":" + '"' + Count_1.ToString() + '"' + ","); // 字段总数
//jsonString.Append('"' + "Rows" + '"' + ":"); // 行字段开始
jsonString.Append("["); // 字段开始
int s = 0;
string m_Sub = ""; // 是否有子类
string m_End = ""; // 父类Id
while (dr.Read()) // ------------- 记录循环
{
s = s + 1;
jsonString.Append("{");
m_Sub = "";
m_End = "";
for (int i = 0; i < dr.FieldCount; i++) // ---------- 字段循环
{
Type type = dr.GetFieldType(i);
string strKey = dr.GetName(i); // 字段名
string strValue = dr[i].ToString(); // 字段内容
///LogManager.WriteLog("第"+s.ToString()+"行: dr.GetName(i)的字段名:" + strKey + " dr[i]字段内容" + strValue);
// ------------------------------------------------------------------------ // 检查赋值【有无子记录】和【是否子记录结束】
if (strKey == "Tree_Sub" || strKey == "Tree_End")
{
if (strKey == "Tree_Sub")
{
m_Sub = strValue;
}
else
{
m_End = strValue;
// LogManager.WriteLog("m_End:" + m_End);
}
}
else
{
// ------------------------------------------------------------------------ // 取字段并赋值
jsonString.Append("\"" + strKey + "\":"); // ------ // 赋值 -- 字段名
if (strKey != "children")
{
//StrFormat sss=new StrFormat();
strValue = StrFormat.StringFormat(strValue, type); // ------ 赋值 -- 字段内容
if (i < dr.FieldCount - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
// --------------- // 如果
}
else
{
//LogManager.WriteLog("第" + s.ToString() + "行: dr.GetName(i)的字段名:" + strKey + " dr[i]字段内容" + strValue + "m_Sub:" + m_Sub);
// -------------------------------------------- // 如果有子树
if (m_Sub == "1")
{
// LogManager.WriteLog("m_Sub:" + m_Sub);
jsonString.Append("[");
}
else
{
jsonString.Append("null");
}
}
}
} // End_For
// -------------------------------------------- // 计算子树类
if (m_Sub != "1" && m_End != "1")
{
jsonString.Append("},");
}
if (m_End == "1")
{
jsonString.Append("}]},");
}
}
dr.Close();
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]"); // 字段结束
// jsonString.Append("}"); // 总括号 -- 结束
LogManager.WriteLog(jsonString.ToString());
this.context.Response.Write(jsonString.ToString());
asp.net数据库生成LigerUi树Tree结构Json格式数据(有点绕,附基本源代码)
最新推荐文章于 2022-07-15 17:32:15 发布