C# easyui json类
using System; using System.Data; using System.Text; namespace Common { public class JsonHelp { private StringBuilder result = new StringBuilder(); private StringBuilder sb = new StringBuilder(); public string CreateComboboxJson(DataTable dt, int type) { StringBuilder stringBuilder = new StringBuilder(); if (dt != null && dt.Rows.Count > 0) { StringBuilder stringBuilder2 = new StringBuilder(); stringBuilder2.Append("["); if (type != 2) { stringBuilder2.Append("{ "); stringBuilder2.Append("\"id\": "); stringBuilder2.Append(-1 + ","); stringBuilder2.Append("\"text\": "); if (type == 1 || type == 3) { stringBuilder2.Append("\"请选择\""); } else { stringBuilder2.Append("\"全部\""); } DataRow[] array = dt.Select("IsDefault=1"); if ((type == 0 || array.Length == 0) && type != 3) { stringBuilder2.Append(",\"selected\": "); stringBuilder2.Append("true"); } stringBuilder2.Append("},"); } stringBuilder.Append(stringBuilder2.ToString()); for (int i = 0; i < dt.Rows.Count; i++) { if (i < dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); if (dt.Rows[i]["IsDefault"].ToString() == "1" && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } stringBuilder.Append("},"); } if (i == dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); if (dt.Rows[i]["IsDefault"].ToString() == "1" && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } stringBuilder.Append("}"); } } stringBuilder.Append("]"); return stringBuilder.ToString(); } stringBuilder.Append("["); stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(-1 + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"请选择\""); stringBuilder.Append("}"); stringBuilder.Append("]"); return stringBuilder.ToString(); } public string ComboboxJson(DataTable dt, int warehouseid, int type) { StringBuilder stringBuilder = new StringBuilder(); if (dt != null && dt.Rows.Count > 0) { StringBuilder stringBuilder2 = new StringBuilder(); stringBuilder2.Append("["); stringBuilder.Append(stringBuilder2.ToString()); for (int i = 0; i < dt.Rows.Count; i++) { if (i < dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); if ((dt.Rows[i]["name"].ToString() == "人民币" || dt.Rows[i]["ID"].ToString() == "3") && warehouseid == 1 && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } if ((dt.Rows[i]["name"].ToString() == "港币" || dt.Rows[i]["ID"].ToString() == "2") && warehouseid == 2 && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } stringBuilder.Append("},"); } if (i == dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); if ((dt.Rows[i]["name"].ToString() == "人民币" || dt.Rows[i]["ID"].ToString() == "3") && warehouseid == 1 && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } if ((dt.Rows[i]["name"].ToString() == "港币" || dt.Rows[i]["ID"].ToString() == "2") && warehouseid == 2 && type == 1) { stringBuilder.Append(",\"selected\": "); stringBuilder.Append("true"); } stringBuilder.Append("}"); } } stringBuilder.Append("]"); return stringBuilder.ToString(); } stringBuilder.Append("["); stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(-1 + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"请选择\""); stringBuilder.Append("}"); stringBuilder.Append("]"); return stringBuilder.ToString(); } public string CreateComboboxJson(DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); if (dt != null && dt.Rows.Count > 0) { stringBuilder.Append("[ "); for (int i = 0; i < dt.Rows.Count; i++) { if (i < dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"name\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); stringBuilder.Append("},"); } if (i == dt.Rows.Count - 1) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(dt.Rows[i]["ID"] + ","); stringBuilder.Append("\"name\": "); stringBuilder.Append("\"" + this.JsonCharFilter(dt.Rows[i]["name"].ToString()) + "\""); stringBuilder.Append("}"); } } stringBuilder.Append("]"); return stringBuilder.ToString(); } stringBuilder.Append("["); stringBuilder.Append("{ "); stringBuilder.Append("\"id\": "); stringBuilder.Append(-1 + ","); stringBuilder.Append("\"text\": "); stringBuilder.Append("\"请选择\""); stringBuilder.Append("}"); stringBuilder.Append("]"); return stringBuilder.ToString(); } public string GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId, int type) { if (tabel.Rows.Count > 0) { this.sb.Append("["); if (pId.ToString() == "0" && type == 1) { this.sb.Append("{\"id\":\"0\",\"text\":\"根目录\",\"state\":\"open\""); this.sb.Append("},"); } string filterExpression = string.Format("{0}='{1}'", rela, pId); DataRow[] array = tabel.Select(filterExpression); if (array.Length > 0) { DataRow[] array2 = array; for (int i = 0; i < array2.Length; i++) { DataRow dataRow = array2[i]; this.sb.Append(string.Concat(new object[] { "{\"id\":\"", dataRow[idCol], "\",\"text\":\"", dataRow[txtCol], "\",\"state\":\"open\"" })); if (tabel.Select(string.Format("{0}='{1}'", rela, dataRow[idCol])).Length > 0) { this.sb.Append(",\"children\":"); this.GetTreeJsonByTable(tabel, idCol, txtCol, rela, dataRow[idCol], type); this.result.Append(this.sb.ToString()); } this.result.Append(this.sb.ToString()); this.sb.Append("},"); } this.sb = this.sb.Remove(this.sb.Length - 1, 1); } this.sb.Append("]"); this.result.Append(this.sb.ToString()); } return this.sb.ToString(); } public string GetAdvancedRuleTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId) { if (tabel.Rows.Count > 0) { this.sb.Append("["); if (pId.ToString() == "0") { this.sb.Append("{\"id\":\"0\",\"text\":\"最高权限\",\"state\":\"open\""); this.sb.Append("},"); } string filterExpression = string.Format("{0}='{1}'", rela, pId); DataRow[] array = tabel.Select(filterExpression); if (array.Length > 0) { DataRow[] array2 = array; for (int i = 0; i < array2.Length; i++) { DataRow dataRow = array2[i]; this.sb.Append(string.Concat(new object[] { "{\"id\":\"", dataRow[idCol], "\",\"text\":\"", dataRow[txtCol], "\",\"state\":\"open\"" })); if (tabel.Select(string.Format("{0}='{1}'", rela, dataRow[idCol])).Length > 0) { this.sb.Append(",\"children\":"); this.GetAdvancedRuleTreeJsonByTable(tabel, idCol, txtCol, rela, dataRow[idCol]); this.result.Append(this.sb.ToString()); } this.result.Append(this.sb.ToString()); this.sb.Append("},"); } this.sb = this.sb.Remove(this.sb.Length - 1, 1); } this.sb.Append("]"); this.result.Append(this.sb.ToString()); } else { if (pId.ToString() == "0") { this.sb.Append("["); this.sb.Append("{\"id\":\"0\",\"text\":\"最高权限\",\"state\":\"open\""); this.sb.Append("}"); this.sb.Append("]"); } } return this.sb.ToString(); } public string GetJsonTreeByTable(DataTable dt, string where) { StringBuilder stringBuilder = new StringBuilder(); if (dt.Rows.Count > 0) { DataRow[] array = dt.Select(where, " Sequence asc"); stringBuilder.Append("["); for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["id"].ToString()); string text = array[i]["URL"].ToString(); if (!string.IsNullOrEmpty(text) && text.IndexOf('?') != -1) { text = text + "&pagesid=" + num; } else { if (!string.IsNullOrEmpty(text) && text.IndexOf('?') == -1) { text = text + "?&pagesid=" + num; } } stringBuilder.Append("\"attributes\": {"); stringBuilder.Append("\"url\": \"" + text + "\","); stringBuilder.Append("\"isreloadid\":\"" + array[i]["isreloadid"].ToString() + "\""); stringBuilder.Append("},"); stringBuilder.Append("\"checked\": false, "); stringBuilder.Append("\"iconCls\": \"ext-icon-medal_gold_3\" ,"); if (array[i]["fatherid"].ToString() == "0") { stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); } else { stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"pid\": \"" + array[i]["fatherid"].ToString() + "\" ,"); } stringBuilder.Append("\"state\": \"open\", "); stringBuilder.Append("\"text\": \"" + array[i]["Name"].ToString().Replace("\"", "\\\"") + "\" "); if (i == array.Length - 1) { stringBuilder.Append("}"); } else { stringBuilder.Append("},"); } } stringBuilder.Append("]"); } else { stringBuilder.Append("[]"); } return stringBuilder.ToString(); } public string GetFatherNameByFatherID(DataTable dt, string fatherid) { DataRow[] array = dt.Select("id=" + fatherid); if (array.Length > 0) { return array[0]["name"].ToString(); } return ""; } public string GetTreeList(DataTable dt) { DataRow[] array = dt.Select(" fatherid=0"); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("{\"total\":" + dt.Rows.Count + ",\"rows\":"); stringBuilder.Append("[ "); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["fatherid"].ToString()); int num2 = Convert.ToInt32(array[i]["pagetypeid"].ToString()); int num3 = Convert.ToInt32(array[i]["isreloadid"].ToString()); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"name\": \"" + array[i]["Name"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"seq\": \"" + array[i]["Sequence"].ToString() + "\", "); stringBuilder.Append("\"url\": \"" + array[i]["url"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append("\"buttonid\": \"" + array[i]["buttonid"].ToString() + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + num + "\" ,"); stringBuilder.Append("\"iconCls\": \"icon-ok\" ,"); stringBuilder.Append("\"pagetypename\": \"" + array[i]["pagetypename"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append("\"pagetypeid\": \"" + num2 + "\" ,"); if (num3 == 1) { stringBuilder.Append("\"isreloadid\": \"否\" ,"); } else { stringBuilder.Append("\"isreloadid\": \"是\" ,"); } stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetMenu(array[i]["ID"].ToString(), dt)); } } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("]}"); return stringBuilder.ToString(); } public string GetAdvancedTreeList(DataTable dt) { DataRow[] array = dt.Select(" fatherid=0"); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("{\"total\":" + dt.Rows.Count + ",\"rows\":"); stringBuilder.Append("[ "); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["fatherid"].ToString()); int num2 = Convert.ToInt32(array[i]["userid"].ToString()); string str = array[i]["name"].ToString(); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + num + "\" ,"); stringBuilder.Append("\"userid\": \"" + num2 + "\" ,"); stringBuilder.Append("\"name\": \"" + str + "\" ,"); stringBuilder.Append("\"departmentname\": \"" + array[i]["departmentname"].ToString() + "\" ,"); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetAdvancedMenu(array[i]["ID"].ToString(), dt)); } } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("]}"); return stringBuilder.ToString(); } public string SetAdvancedMenu(string parentid, DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); DataRow[] array = dt.Select(" fatherid=" + parentid); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["userid"].ToString()); string str = array[i]["name"].ToString(); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append(string.Format("\"_parentId\": \"{0}\" ,", parentid)); stringBuilder.Append("\"fatherid\": \"" + parentid + "\" ,"); stringBuilder.Append("\"userid\": \"" + num + "\" ,"); stringBuilder.Append("\"name\": \"" + str + "\" ,"); stringBuilder.Append("\"departmentname\": \"" + array[i]["departmentname"].ToString() + "\" ,"); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetAdvancedMenu(array[i]["ID"].ToString(), dt)); } } return stringBuilder.ToString(); } public string SetMenu(string parentid, DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); DataRow[] array = dt.Select(" fatherid=" + parentid); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["pagetypeid"].ToString()); int num2 = Convert.ToInt32(array[i]["isreloadid"].ToString()); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"name\": \"" + array[i]["Name"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"seq\": \"" + array[i]["Sequence"].ToString() + "\", "); stringBuilder.Append("\"url\": \"" + array[i]["url"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"buttonid\": \"" + array[i]["buttonid"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append(string.Format("\"_parentId\": \"{0}\" ,", parentid)); stringBuilder.Append("\"fatherid\": \"" + parentid + "\" ,"); stringBuilder.Append("\"pagetypename\": \"" + array[i]["pagetypename"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append("\"pagetypeid\": \"" + num + "\" ,"); if (num2 == 1) { stringBuilder.Append("\"isreloadid\": \"否\" ,"); } else { stringBuilder.Append("\"isreloadid\": \"是\" ,"); } stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetMenu(array[i]["ID"].ToString(), dt)); } } return stringBuilder.ToString(); } public string GetJsonFromDataTable(DataTable dt, int total, bool isshowtotal = true) { StringBuilder stringBuilder = new StringBuilder(); if (dt.Rows.Count == 0) { stringBuilder.Append("{ "); stringBuilder.Append("\"rows\":[ "); stringBuilder.Append("]"); if (isshowtotal) { stringBuilder.Append(","); stringBuilder.Append("\"total\":"); stringBuilder.Append(total); } stringBuilder.Append("}"); return stringBuilder.ToString(); } stringBuilder.Append("{ "); stringBuilder.Append("\"rows\":[ "); for (int i = 0; i < dt.Rows.Count; i++) { stringBuilder.Append("{ "); for (int j = 0; j < dt.Columns.Count; j++) { if (j < dt.Columns.Count - 1) { stringBuilder.Append(string.Concat(new string[] { "\"", dt.Columns[j].ColumnName.ToString().ToLower(), "\":\"", this.JsonCharFilter(dt.Rows[i][j].ToString()), "\"," })); } else { if (j == dt.Columns.Count - 1) { stringBuilder.Append(string.Concat(new string[] { "\"", dt.Columns[j].ColumnName.ToString().ToLower(), "\":\"", this.JsonCharFilter(dt.Rows[i][j].ToString()), "\"" })); } } } if (i == dt.Rows.Count - 1) { stringBuilder.Append("} "); } else { stringBuilder.Append("}, "); } } stringBuilder.Append("]"); if (isshowtotal) { stringBuilder.Append(","); stringBuilder.Append("\"total\":"); stringBuilder.Append(total); } stringBuilder.Append("}"); return stringBuilder.ToString(); } public string JsonCharFilter(string sourceStr) { sourceStr = sourceStr.Replace("\\", "\\\\"); sourceStr = sourceStr.Replace("\"", "\\\""); sourceStr = sourceStr.Replace("\b", "\\b"); sourceStr = sourceStr.Replace("\t", "\\t"); sourceStr = sourceStr.Replace("\n", "\\n"); sourceStr = sourceStr.Replace("\f", "\\f"); sourceStr = sourceStr.Replace("\r", "\\r"); return sourceStr; } public string DataTableToFomater(DataTable dt) { this.sb.Clear(); this.sb.Append("[{"); if (dt.Rows.Count > 0) { string text = dt.Rows[0][0].ToString(); if (text.IndexOf("成功") != -1) { this.sb.Append("\"success\":"); this.sb.Append("true,"); } else { this.sb.Append("\"success\":"); this.sb.Append("false,"); } this.sb.Append("\"msg\":"); this.sb.Append("\"" + text + "\""); } this.sb.Append("}]"); return this.sb.ToString(); } public string CheckLogin() { this.sb.Append("[{"); this.sb.Append("\"success\":"); this.sb.Append("false,"); this.sb.Append("\"reload\":"); this.sb.Append("true,"); this.sb.Append("\"url\":"); this.sb.Append("\"/login.html\","); this.sb.Append("\"msg\":"); this.sb.Append("\"非法操作,请重新登录\""); this.sb.Append("}]"); return this.sb.ToString(); } public string GetJsonFromDataTable(DataTable dt, int total, bool ShowFooter, string fields, string inputfiled, string ShowMessage = "合计:", string filter = "") { StringBuilder stringBuilder = new StringBuilder(); if (dt.Rows.Count == 0) { stringBuilder.Append("{ "); stringBuilder.Append("\"rows\":[ "); stringBuilder.Append("]"); stringBuilder.Append(","); stringBuilder.Append("\"total\":"); stringBuilder.Append(total); stringBuilder.Append(",\"footer\":["); stringBuilder.Append("]"); stringBuilder.Append("}"); return stringBuilder.ToString(); } stringBuilder.Append("{ "); stringBuilder.Append("\"rows\":[ "); for (int i = 0; i < dt.Rows.Count; i++) { stringBuilder.Append("{ "); for (int j = 0; j < dt.Columns.Count; j++) { if (j < dt.Columns.Count - 1) { stringBuilder.Append(string.Concat(new string[] { "\"", dt.Columns[j].ColumnName.ToString().ToLower(), "\":\"", this.JsonCharFilter(dt.Rows[i][j].ToString()), "\"," })); } else { if (j == dt.Columns.Count - 1) { stringBuilder.Append(string.Concat(new string[] { "\"", dt.Columns[j].ColumnName.ToString().ToLower(), "\":\"", this.JsonCharFilter(dt.Rows[i][j].ToString()), "\"" })); } } } if (i == dt.Rows.Count - 1) { stringBuilder.Append("} "); } else { stringBuilder.Append("}, "); } } stringBuilder.Append("]"); stringBuilder.Append(","); stringBuilder.Append("\"total\":"); stringBuilder.Append(total); if (ShowFooter && fields.Length > 0 && inputfiled.Length > 0) { stringBuilder.Append(",\"footer\":[{"); stringBuilder.Append(string.Concat(new string[] { "\"", inputfiled, "\":\"<span style='color:red; font-weight:bold'>", ShowMessage, "</span>\"," })); string[] array = fields.Split(new char[] { ',' }); for (int k = 0; k < array.Length; k++) { if (k < array.Length - 1) { stringBuilder.Append(string.Concat(new object[] { "\"", array[k], "\":\"", dt.Compute("sum(" + array[k] + ")", filter), "\"," })); } else { stringBuilder.Append(string.Concat(new object[] { "\"", array[k], "\":\"", dt.Compute("sum(" + array[k] + ")", filter), "\"" })); } } stringBuilder.Append("}]"); } stringBuilder.Append("}"); return stringBuilder.ToString(); } public string GetJsonFromDataTable() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("{ "); stringBuilder.Append("\"rows\":[ "); stringBuilder.Append("]"); stringBuilder.Append(","); stringBuilder.Append("\"total\":"); stringBuilder.Append(0); stringBuilder.Append(",\"footer\":["); stringBuilder.Append("]"); stringBuilder.Append("}"); return stringBuilder.ToString(); } public string ComBoxProductTree(DataTable tables) { DataRow[] array = tables.Select(" FatherID=0"); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("{\"total\":" + tables.Rows.Count + ",\"rows\":"); stringBuilder.Append("[ "); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["FatherID"].ToString()); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"productid\": \"" + array[i]["ProductID"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"productcode\": \"" + array[i]["ProductCode"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"productname\": \"" + array[i]["ProductName"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + num + "\" ,"); stringBuilder.Append("\"qty\": \"" + array[i]["Quantity"].ToString() + "\" ,"); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.GetComBoxProductTreeByFatherid(array[i]["ID"].ToString(), tables)); } } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("]}"); return stringBuilder.ToString(); } public string GetComBoxProductTreeByFatherid(string fatherid, DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); DataRow[] array = dt.Select(" FatherID=" + fatherid); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"productid\": \"" + array[i]["ProductID"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"productcode\": \"" + array[i]["ProductCode"].ToString().Replace("\"", "\\\"") + "\", "); stringBuilder.Append("\"productname\": \"" + array[i]["ProductName"].ToString().Replace("\"", "\\\"") + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + fatherid + "\" ,"); stringBuilder.Append("\"qty\": \"" + array[i]["Quantity"].ToString() + "\" ,"); stringBuilder.Append(string.Format("\"_parentId\": \"{0}\" ,", fatherid)); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.GetComBoxProductTreeByFatherid(array[i]["ID"].ToString(), dt)); } } return stringBuilder.ToString(); } public string GetProjectCostTreeList(DataTable dt) { DataRow[] array = dt.Select(" fatherid=0"); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("{\"total\":" + dt.Rows.Count + ",\"rows\":"); stringBuilder.Append("[ "); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["fatherid"].ToString()); int num2 = Convert.ToInt32(array[i]["projectid"].ToString()); string str = this.JsonCharFilter(array[i]["title"].ToString()); string str2 = this.JsonCharFilter(array[i]["costtypename"].ToString()); decimal num3 = Convert.ToDecimal(array[i]["price"].ToString()); int num4 = Convert.ToInt32(array[i]["costtypeid"].ToString()); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + num + "\" ,"); stringBuilder.Append("\"projectid\": \"" + num2 + "\" ,"); stringBuilder.Append("\"code\": \"" + array[i]["code"].ToString() + "\" ,"); stringBuilder.Append("\"title\": \"" + str + "\" ,"); stringBuilder.Append("\"costtypeid\": \"" + num4 + "\" ,"); stringBuilder.Append("\"costtypename\": \"" + str2 + "\" ,"); stringBuilder.Append("\"price\": \"" + num3 + "\" ,"); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetProjectMenu(array[i]["ID"].ToString(), dt)); } } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("]}"); return stringBuilder.ToString(); } public string SetProjectMenu(string parentid, DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); DataRow[] array = dt.Select(" fatherid=" + parentid); if (array.Length > 0) { for (int i = 0; i < array.Length; i++) { stringBuilder.Append("{ "); int num = Convert.ToInt32(array[i]["fatherid"].ToString()); int num2 = Convert.ToInt32(array[i]["projectid"].ToString()); string str = this.JsonCharFilter(array[i]["title"].ToString()); string str2 = this.JsonCharFilter(array[i]["costtypename"].ToString()); decimal num3 = Convert.ToDecimal(array[i]["price"].ToString()); int num4 = Convert.ToInt32(array[i]["costtypeid"].ToString()); stringBuilder.Append("\"id\": \"" + array[i]["ID"].ToString() + "\" ,"); stringBuilder.Append("\"fatherid\": \"" + num + "\" ,"); stringBuilder.Append("\"projectid\": \"" + num2 + "\" ,"); stringBuilder.Append("\"code\": \"" + array[i]["code"].ToString() + "\" ,"); stringBuilder.Append("\"title\": \"" + str + "\" ,"); stringBuilder.Append("\"costtypeid\": \"" + num4 + "\" ,"); stringBuilder.Append("\"costtypename\": \"" + str2 + "\" ,"); stringBuilder.Append("\"price\": \"" + num3 + "\" ,"); stringBuilder.Append(string.Format("\"_parentId\": \"{0}\" ,", parentid)); stringBuilder.Append("\"state\": \"closed\" "); stringBuilder.Append("},"); stringBuilder.Append(this.SetAdvancedMenu(array[i]["ID"].ToString(), dt)); } } return stringBuilder.ToString(); } public DataTable CreateDataTable() { DataTable dataTable = new DataTable(); dataTable.Columns.Add("abc", typeof(string)); DataRow dataRow = dataTable.NewRow(); object[] itemArray = new object[] { "操作失败" }; dataRow.ItemArray = itemArray; dataTable.Rows.Add(dataRow); return dataTable; } } }