internal static JsonTreeResponse PrepareJsonTreeResponse(JsonTreeResponse response, JQGrid grid, DataTable dt, IQueryable data = null) { for (int i = 0; i < dt.Rows.Count; i++) { response.rows[i] = new Hashtable(); for (int j = 0; j < grid.Columns.Count; j++) { JQGridColumn jQGridColumn = grid.Columns[j]; string value = ""; if (!string.IsNullOrEmpty(jQGridColumn.DataField)) { int ordinal = dt.Columns[jQGridColumn.DataField].Ordinal; value = (string.IsNullOrEmpty(jQGridColumn.DataFormatString) ? dt.Rows[i].ItemArray[ordinal].ToString() : jQGridColumn.FormatDataValue(dt.Rows[i].ItemArray[ordinal], jQGridColumn.HtmlEncode)); } response.rows[i].Add(jQGridColumn.DataField, value); } try { response.rows[i].Add("tree_level", dt.Rows[i]["tree_level"] as int?); } catch { } try { object obj = dt.Rows[i]["tree_parent"]; string value2; if (obj is DBNull) { value2 = "null"; } else { value2 = Convert.ToString(dt.Rows[i]["tree_parent"]); } response.rows[i].Add("tree_parent", value2); } catch { } try { response.rows[i].Add("tree_leaf", dt.Rows[i]["tree_leaf"] as bool?); } catch { } try { response.rows[i].Add("tree_expanded", dt.Rows[i]["tree_expanded"] as bool?); } catch { } try { response.rows[i].Add("tree_loaded", dt.Rows[i]["tree_loaded"] as bool?); } catch { } try { response.rows[i].Add("tree_icon", dt.Rows[i]["tree_icon"] as string); } catch { } } return(response); }
private static string BindValue(string DataField, object data, PropertyInfo[] properties, JQGridColumn column) { if (string.IsNullOrEmpty(DataField)) { return(""); } PropertyInfo prop; if (DataField.IndexOf('.') > -1) { int index = DataField.IndexOf('.'); string PropField = DataField.Substring(0, index); index++; string NewDataField = DataField.Substring(index, DataField.Length - index); prop = properties.Where(p => p.Name.ToLower().Equals(PropField.ToLower())).FirstOrDefault(); PropertyInfo[] NewProperties = prop.PropertyType.GetProperties(BindingFlags.Instance | BindingFlags.Public); object val = prop.GetValue(data, null); return(BindValue(NewDataField, val, NewProperties, column)); } else { prop = properties.Where(p => p.Name.ToLower().Equals(DataField.ToLower())).FirstOrDefault(); } if (prop != null) { if (data == null) { return(""); } if (prop.GetValue(data, null) != null) { object val = prop.GetValue(data, null); string text = (string.IsNullOrEmpty(column.DataFormatString) ? val.ToString() : column.FormatDataValue(val, column.HtmlEncode)); return(text); } else { return(""); } } return(""); }
internal static JsonResponse PrepareJsonResponse(JsonResponse response, JQGrid grid, DataTable dt) { for (int i = 0; i < dt.Rows.Count; i++) { string[] array = new string[grid.Columns.Count]; for (int j = 0; j < grid.Columns.Count; j++) { JQGridColumn jQGridColumn = grid.Columns[j]; string text = ""; if (!string.IsNullOrEmpty(jQGridColumn.DataField)) { int ordinal = dt.Columns[jQGridColumn.DataField].Ordinal; text = (string.IsNullOrEmpty(jQGridColumn.DataFormatString) ? dt.Rows[i].ItemArray[ordinal].ToString() : jQGridColumn.FormatDataValue(dt.Rows[i].ItemArray[ordinal], jQGridColumn.HtmlEncode)); } array[j] = text; } string id = array[Util.GetPrimaryKeyIndex(grid)]; JsonRow jsonRow = new JsonRow(); jsonRow.id = id; jsonRow.cell = array; response.rows[i] = jsonRow; } return(response); }