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;
}
}
}

  

最新文章

  1. activity的启动模式
  2. oracle-表空间满了
  3. docker学习整理
  4. 《UNIX环境高级编程》学习心得 二
  5. 使用c3p0连接池
  6. DTCMS更改图片相册上传图片类型,手机上传图片相册
  7. 转换Json格式帮助类
  8. centos7下载安装谷歌浏览器
  9. hive 中的Sort By、 Order By、Cluster By、Distribute By 区别
  10. Css 外边距折叠(collapsed margin ) 浅析
  11. freemarker定义自己的标签错误(一)
  12. Lucene中的合并因子mergeFactor
  13. Spring框架中ModelAndView、Model、ModelMap区别
  14. Spring Security 入门(1-3-1)Spring Security - http元素 - 默认登录和登录定制
  15. kafka常规及几个重要的操作命令
  16. [转载] java多线程总结(三)
  17. python 排序 sort和sorted
  18. MLlib之LR算法源码学习
  19. CSRF理解和实战
  20. ASP.NET网站权限设计实现(二)——角色权限绑定

热门文章

  1. 496 Next Greater Element I 下一个更大元素 I
  2. CF 602 D. Lipshitz Sequence 数学 + 单调栈 + 优化
  3. logging模块进阶
  4. java 获取ip地址
  5. Scala基础篇-05求值策略
  6. 在colab上运行style-transfer
  7. 介绍三款大前端UI框架
  8. Makeflie自动生成依赖,自动化编译
  9. 作为一个iOS Developer 为什么我不用Swift?
  10. System类与两种输入流