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

  

posted @ 2013-12-12 15:02  放哨De老鼠  阅读(725)  评论(0编辑  收藏  举报