/// <summary> /// 填充对象列表:用DataTable填充实体类 /// </summary> public static List <N> FillModel <N>(DataTable dt) { if (dt == null || dt.Rows.Count == 0) { return(null); } List <N> modelList = new List <N>(); foreach (DataRow dr in dt.Rows) { N model = (N)Activator.CreateInstance(typeof(N)); // N model = (N)Activator.CreateInstance(); for (int i = 0; i < dr.Table.Columns.Count; i++) { PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName); if (propertyInfo != null && dr[i] != DBNull.Value) { propertyInfo.SetValue(model, NTool.HConvertByType(dr[i].ToString(), propertyInfo.PropertyType), null); } } modelList.Add(model); } return(modelList); }
public string JsonNoLevel(T _chlidModel, SetDelegateResult setMothod, SetProcessResult SetP, List <T> _menu, int?Row, int Layer, int Level) { StringBuilder sbStr = new StringBuilder(); List <T> __chlidList = NTool.SelectListData <T> (_menu, (Predicate <T>)SetP(_chlidModel, _oldValue, _menu, Layer, Level)); sbStr.Append(setMothod(_menu, _chlidModel, __chlidList != null ? __chlidList.Count : 0, Layer, Level)); if (NTool.IsLtNULL <T>(_menu)) { { if (NTool.IsLtNULL <T>(__chlidList)) { Level++; int CwGo = 0; //二级 sbStr.Append(",\"children\":[ "); foreach (T chlidModel in __chlidList) { CwGo++; if (CwGo == 1) { sbStr.Append("{"); } else { sbStr.Append(",{"); } _oldValue = chlidModel; string lastStr = JsonNoLevel(chlidModel, setMothod, SetP, _menu, -1, Layer, Level); sbStr.Append(lastStr); sbStr.Append("} "); } sbStr.Append("] "); } } } return(sbStr + ""); }
public static void SetModelFieldVal(PropertyInfo[] pi, ref Object obj, string keyPostOrGet, string val) { List <PropertyInfo> kvp = pi.Where(a => a.Name.ToLower().Trim().Equals(keyPostOrGet.ToLower().Trim())).Skip(0).Take(1).ToList(); if (kvp != null && kvp.Count > 0) { Type tp = kvp[0].PropertyType; if (string.IsNullOrEmpty(val)) { return; } object _o = NTool.HConvertByType(val, tp); kvp[0].SetValue(obj, _o, null); } }
public string JsonNoLevel(SetDelegateResult setMothod, SetProcessResult SetP, List <T> _menu) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("["); if (NTool.IsLtNULL <T>(_menu)) { List <T> _listFirst = NTool.SelectListData <T>(_menu, (Predicate <T>)SetP(default(T), default(T), _menu, -1, -1)); if (NTool.IsLtNULL <T>(_listFirst)) { int l1 = 0; foreach (T _chlidModel in _listFirst) { //一级 l1++; if (l1 == 1) { sbStr.Append("{"); } else { sbStr.Append(",{"); } // Level = l1; Level = 2; Layer++; sbStr.Append(JsonNoLevel(_chlidModel, setMothod, SetP, _menu, -1, Layer, Level)); sbStr.Append("} "); } } } sbStr.Append(" ] "); return(sbStr.ToString()); }
public static string JsonStr(bool isAddEnd = false, params string[] str) { StringBuilder _str = new StringBuilder(); // ("\"id\":\"{0}\",\"text\":\"{1}\",\"iconCls\":\"icon-add\"", _chlidModel.ID, _chlidModel.Name); if (NTool.IsArrNULL <string>(str) && str.Length < 5000) { if (isAddEnd) { _str.Append("{"); } string key = "", val = ""; for (int i = 1; i <= str.Length; i++) { //双数 if (i % 2 == 0) { val = "" + str[i - 1]; if (i >= str.Length) { _str.AppendFormat("\"{0}\":\"{1}\"", key, val); } else { _str.AppendFormat("\"{0}\":\"{1}\",", key, val); } } else { key = "" + str[i - 1]; } } if (isAddEnd) { _str.Append("} "); } } return(_str.ToString()); }
public static bool ModelSetVal <T>(ref T modelVal, Dictionary <string, string> vl) { if (!IsDcNULL <string, string>(vl)) { return(false); } Type type = typeof(T); object obj = type.Assembly.CreateInstance(type.FullName); foreach (PropertyInfo pi in obj.GetType().GetProperties()) { string val = ""; string name = ""; try { KeyValuePair <string, string> kvp = (KeyValuePair <string, string>)vl.Where(a => a.Key.ToLower().Trim().Equals(pi.Name.ToLower().Trim())).Skip(0).Take(1). FirstOrDefault(); val = kvp.Value + ""; name = "" + pi.Name; } catch (Exception ex) { } Type tp = pi.PropertyType; if (string.IsNullOrEmpty(val)) { continue; } object _o = NTool.HConvertByType(val, tp); pi.SetValue(obj, _o, null); } modelVal = (T)obj; return(true); }
public static string GetDictionaryString(NModel.EnObject.EDisplayType eDisplayType, Dictionary <string, string> dc, int maxShow) { string takeStr = ""; if (!NTool.IsDcNULL <string, string>(dc)) { return("暂时没有数据"); } if (maxShow < dc.Count) { return("超出长度:" + dc.Count + "个"); } StringBuilder str = new StringBuilder(); switch (eDisplayType) { case NModel.EnObject.EDisplayType.eJson: str.Append("{"); int count = 0; foreach (KeyValuePair <string, string> kpr in dc) { count++; if (dc.Count <= count) { str.AppendFormat("\"{0}\":\"{1}\"", kpr.Key, kpr.Value); } else { str.AppendFormat("\"{0}\":\"{1}\",", kpr.Key, kpr.Value); } } str.Append("}"); takeStr = str.ToString(); break; case NModel.EnObject.EDisplayType.eText: break; case NModel.EnObject.EDisplayType.eHtml: break; case NModel.EnObject.EDisplayType.eJs: break; case NModel.EnObject.EDisplayType.eXml: break; case NModel.EnObject.EDisplayType.eCss: break; default: break; } return(takeStr); }