private string GetOutput(CoreGrid grid, List <Hashtable> data)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (ExportSettings.ExportHeaders)
            {
                foreach (CoreColumn column in grid.Columns)
                {
                    stringBuilder.AppendFormat("{0}{1}", QuoteText(column.DataField), ExportSettings.CSVSeparator);
                }
            }
            stringBuilder.Append("\n");
            for (int i = 0; i < data.Count; i++)
            {
                for (int j = 0; j < Columns.Count; j++)
                {
                    if (Columns[j].Visible)
                    {
                        CoreColumn coreColumn = grid.Columns[j];
                        string     text       = (!string.IsNullOrEmpty(coreColumn.DataField) && !string.IsNullOrEmpty(coreColumn.DataFormatString)) ? coreColumn.FormatDataValue(data[i][coreColumn.DataField], coreColumn.HtmlEncode) : (data[i][coreColumn.DataField] as string);
                        stringBuilder.AppendFormat("{0}{1}", data[i][coreColumn.DataField], ExportSettings.CSVSeparator);
                    }
                }
                stringBuilder.Append("\n");
            }
            return(stringBuilder.ToString());
        }
        internal static List <Hashtable> ToListOfHashtables(IQueryable iqueryable, CoreGrid grid)
        {
            List <Hashtable> list = new List <Hashtable>();

            foreach (object item in iqueryable)
            {
                PropertyInfo[] properties = item.GetType().GetProperties();
                Hashtable      hashtable  = new Hashtable();
                PropertyInfo[] array      = properties;
                foreach (PropertyInfo pi in array)
                {
                    Type propertyType = pi.PropertyType;
                    if (propertyType.GetTypeInfo().IsGenericType&& propertyType.GetGenericTypeDefinition() == typeof(Nullable <>))
                    {
                        propertyType = Nullable.GetUnderlyingType(propertyType);
                    }
                    if (grid.TreeGridSettings.Enabled)
                    {
                        hashtable.Add(pi.Name, pi.GetValue(item, null));
                    }
                    else if (grid.Columns.Find((CoreColumn c) => c.DataField == pi.Name) != null)
                    {
                        hashtable.Add(pi.Name, pi.GetValue(item, null));
                    }
                }
                list.Add(hashtable);
            }
            return(list);
        }
Example #3
0
        internal static string GetAttachEditorsFunction(CoreGrid grid, string editorType, string editorControlID)
        {
            List <string> listOfColumns = GetListOfColumns(grid);
            List <string> listOfEditors = GetListOfEditors(grid);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("function(el) {");
            stringBuilder.Append("setTimeout(function() {");
            stringBuilder.AppendFormat("var ec = '{0}';", editorControlID);
            if (editorType == "datepickerjquery")
            {
                stringBuilder.Append("if (typeof(jQuery(el).datepicker) !== 'function')");
                stringBuilder.Append("alert('CoreDatePicker javascript not present on the page. Please, include jquery.jqDatePicker.min.js');");
                stringBuilder.Append("jQuery(el).datepicker( eval(ec + '_dpid') );");
            }
            if (editorType == "datepicker")
            {
                stringBuilder.Append(" $(el).datepicker({");
                stringBuilder.Append("autoclose: true,");
                stringBuilder.Append("format: 'dd.mm.yyyy',");
                stringBuilder.Append("language: 'ru',");
                stringBuilder.Append("weekStart: 1,");
                stringBuilder.Append("orientation : 'bottom'");
                stringBuilder.Append(" }).on('changeDate',function(e){setTimeout(function(){if ($(e.currentTarget).attr('searchoperators')=='true') $('#" + grid.ID + "')[0].triggerToolbar();}, 50);});");
            }
            if (editorType == "autocomplete")
            {
                stringBuilder.Append("if (typeof(jQuery(el).autocomplete) !== 'function')");
                stringBuilder.Append("alert('CoreAutoComplete javascript not present on the page. Please, include jquery.jqAutoComplete.min.js');");
                stringBuilder.Append("jQuery(el).autocomplete( eval(ec + '_acid') );");
            }
            stringBuilder.Append("},200);");
            stringBuilder.Append("}");
            return(stringBuilder.ToString());
        }
        private string GetToolBarOptions(CoreGrid grid, bool subGrid, string pagerSelectorID, string tableSelector)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (grid.ShowToolBar)
            {
                JsonToolBar jsonToolBar = new JsonToolBar(grid.ToolBarSettings);
                if (!subGrid)
                {
                    stringBuilder.AppendFormat("{7}.navGrid('#{0}',{1},{2},{3},{4},{5},{6} );", grid.ID + "_pager", JsonConvert.SerializeObject((object)jsonToolBar), $"jQuery('#{grid.ID}').getGridParam('editDialogOptions')", $"jQuery('#{grid.ID}').getGridParam('addDialogOptions')", $"jQuery('#{grid.ID}').getGridParam('delDialogOptions')", $"jQuery('#{grid.ID}').getGridParam('searchDialogOptions')", $"jQuery('#{grid.ID}').getGridParam('viewRowDialogOptions')", tableSelector);
                }
                else
                {
                    stringBuilder.AppendFormat("{6}.navGrid('#' + pager_id,{0},{1},{2},{3},{4} );", JsonConvert.SerializeObject((object)jsonToolBar), "jQuery('#' + subgrid_table_id).getGridParam('editDialogOptions')", "jQuery('#' + subgrid_table_id).getGridParam('addDialogOptions')", "jQuery('#' + subgrid_table_id).getGridParam('delDialogOptions')", "jQuery('#' + subgrid_table_id).getGridParam('searchDialogOptions')", "jQuery('#' + subgrid_table_id).getGridParam('viewRowDialogOptions')", tableSelector);
                }
                foreach (CoreGridToolBarButton customButton in grid.ToolBarSettings.CustomButtons)
                {
                    if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Bottom || grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom)
                    {
                        JsonCustomButton jsonCustomButton = new JsonCustomButton(customButton);
                        stringBuilder.AppendFormat("{2}.navButtonAdd({0},{1});", pagerSelectorID, jsonCustomButton.Process(), tableSelector);
                    }
                    if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom || grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Top)
                    {
                        JsonCustomButton jsonCustomButton2 = new JsonCustomButton(customButton);
                        stringBuilder.AppendFormat("{2}.navButtonAdd({0},{1});", pagerSelectorID.Replace("_pager", "_toppager"), jsonCustomButton2.Process(), tableSelector);
                    }
                }
                return(stringBuilder.ToString());
            }
            return(string.Empty);
        }
Example #5
0
        public HtmlString CoreGrid(CoreGrid grid, string id)
        {
            //IL_0016: Unknown result type (might be due to invalid IL or missing references)
            //IL_001c: Expected O, but got Unknown
            CoreGridRenderer coreGridRenderer = new CoreGridRenderer();

            grid.ID = id;
            return(new HtmlString(coreGridRenderer.RenderHtml(grid)));
        }
        public static string RemoveQuotesForJavaScriptMethods(string input, CoreGrid grid)
        {
            string text = input;

            foreach (CoreColumn column in grid.Columns)
            {
                if (column.Formatter != null)
                {
                    CoreGridColumnFormatter formatter = column.Formatter;
                    if (formatter is CustomFormatter)
                    {
                        CustomFormatter customFormatter = (CustomFormatter)formatter;
                        string          oldValue        = $"\"formatter\":\"{customFormatter.FormatFunction}\"";
                        string          newValue        = $"\"formatter\":{customFormatter.FormatFunction}";
                        text     = text.Replace(oldValue, newValue);
                        oldValue = $"\"unformat\":\"{customFormatter.UnFormatFunction}\"";
                        newValue = $"\"unformat\":{customFormatter.UnFormatFunction}";
                        text     = text.Replace(oldValue, newValue);
                        oldValue = $"\"cellattr\":\"{customFormatter.SetAttributesFunction}\"";
                        newValue = $"\"cellattr\":{customFormatter.SetAttributesFunction}";
                        text     = text.Replace(oldValue, newValue);
                    }
                }
                foreach (CoreGridEditClientSideValidator editClientSideValidator in column.EditClientSideValidators)
                {
                    if (editClientSideValidator is CustomValidator)
                    {
                        CustomValidator customValidator = (CustomValidator)editClientSideValidator;
                        string          oldValue2       = $"\"custom_func\":\"{customValidator.ValidationFunction}\"";
                        string          newValue2       = $"\"custom_func\":{customValidator.ValidationFunction}";
                        text = text.Replace(oldValue2, newValue2);
                    }
                }
                if (column.EditType == EditType.Custom)
                {
                    string oldValue3 = $"\"custom_element\":\"{column.EditTypeCustomCreateElement}\"";
                    string newValue3 = $"\"custom_element\":{column.EditTypeCustomCreateElement}";
                    text      = text.Replace(oldValue3, newValue3);
                    oldValue3 = $"\"custom_value\":\"{column.EditTypeCustomGetValue}\"";
                    newValue3 = $"\"custom_value\":{column.EditTypeCustomGetValue}";
                    text      = text.Replace(oldValue3, newValue3);
                }
                if ((column.Editable && column.EditType == EditType.DatePicker) || column.EditType == EditType.AutoComplete)
                {
                    string attachEditorsFunction = CoreGridUtil.GetAttachEditorsFunction(grid, column.EditType.ToString().ToLower(), column.EditorControlID);
                    text = text.Replace("\"attachEditControlsScript" + column.DataField + "\"", attachEditorsFunction);
                    text = text.Replace("\"dataInit\"", "dataInit");
                }
                if ((column.Searchable && column.SearchType == SearchType.DatePicker) || column.SearchType == SearchType.AutoComplete)
                {
                    string attachEditorsFunction2 = CoreGridUtil.GetAttachEditorsFunction(grid, column.SearchType.ToString().ToLower(), column.SearchControlID);
                    text = text.Replace("\"attachSearchControlsScript" + column.DataField + "\"", attachEditorsFunction2);
                    text = text.Replace("\"dataInit\"", "dataInit");
                }
            }
            return(text);
        }
 private string GetColNames(CoreGrid grid)
 {
     string[] array = new string[grid.Columns.Count];
     for (int i = 0; i < grid.Columns.Count; i++)
     {
         CoreColumn coreColumn = grid.Columns[i];
         array[i] = (string.IsNullOrEmpty(coreColumn.HeaderText) ? coreColumn.DataField : coreColumn.HeaderText);
     }
     return(JsonConvert.SerializeObject((object)array));
 }
Example #8
0
        internal static List <string> GetListOfColumns(CoreGrid grid)
        {
            List <string> result = new List <string>();

            grid.Columns.FindAll((CoreColumn c) => c.EditType == EditType.DatePicker || c.EditType == EditType.AutoComplete).ForEach(delegate(CoreColumn c)
            {
                Guard.IsNotNullOrEmpty(c.EditorControlID, "CoreGridColumn.EditorControlID", "must be set to the ID of the editing control control if EditType = DatePicker or EditType = AutoComplete");
                result.Add(c.EditType.ToString().ToLower() + ":" + c.DataField);
            });
            return(result);
        }
        private string GetStartupJavascript(CoreGrid grid, bool subgrid)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<script type='text/javascript'>\n");
            stringBuilder.Append("jQuery(document).ready(function() {");
            stringBuilder.Append(GetStartupOptions(grid, subgrid));
            stringBuilder.Append("});");
            stringBuilder.Append("</script>");
            return(stringBuilder.ToString());
        }
Example #10
0
 public static int GetPrimaryKeyIndex(CoreGrid grid)
 {
     foreach (CoreColumn column in grid.Columns)
     {
         if (column.PrimaryKey)
         {
             return(grid.Columns.IndexOf(column));
         }
     }
     return(0);
 }
 private string GetFirstVisibleDataField(CoreGrid grid)
 {
     foreach (CoreColumn column in grid.Columns)
     {
         if (column.Visible)
         {
             return(column.DataField);
         }
     }
     return(grid.Columns[0].DataField);
 }
Example #12
0
        internal static List <string> GetListOfSearchEditors(CoreGrid grid)
        {
            List <string> result = new List <string>();

            grid.Columns.FindAll((CoreColumn c) => c.SearchType == SearchType.DatePicker || c.SearchType == SearchType.AutoComplete).ForEach(delegate(CoreColumn c)
            {
                Guard.IsNotNullOrEmpty(c.SearchControlID, "CoreGridColumn.SearchControlID", "must be set to the ID of the searching control control if SearchType = DatePicker or SearchType = AutoComplete");
                result.Add(c.SearchControlID);
            });
            return(result);
        }
        private string GetColModel(CoreGrid grid)
        {
            Hashtable[] array = new Hashtable[grid.Columns.Count];
            for (int i = 0; i < grid.Columns.Count; i++)
            {
                JsonColModel jsonColModel = new JsonColModel(grid.Columns[i], grid);
                array[i] = jsonColModel.JsonValues;
            }
            string input = JsonConvert.SerializeObject((object)array);

            return(JsonColModel.RemoveQuotesForJavaScriptMethods(input, grid));
        }
        private string GetChildSubGridJavaScript(CoreGrid grid)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<script type='text/javascript'>\n");
            stringBuilder.AppendFormat("function showSubGrid_{0}(subgrid_id, row_id, message, suffix) {{", grid.ID);
            stringBuilder.Append("var subgrid_table_id, pager_id;\r\n\t\t                subgrid_table_id = subgrid_id+'_t';\r\n\t\t                pager_id = 'p_'+ subgrid_table_id;\r\n                        if (suffix) { subgrid_table_id += suffix; pager_id += suffix;  }\r\n                        if (message) jQuery('#'+subgrid_id).append(message);                        \r\n\t\t                jQuery('#'+subgrid_id).append('<table id=' + subgrid_table_id + ' class=scroll></table><div id=' + pager_id + ' class=scroll></div>');\r\n                ");
            stringBuilder.Append(GetStartupOptions(grid, subGrid: true));
            stringBuilder.Append("}");
            stringBuilder.Append("</script>");
            return(stringBuilder.ToString());
        }
Example #15
0
        public static Hashtable GetFooterInfo(CoreGrid grid)
        {
            Hashtable hashtable = new Hashtable();

            if (grid.AppearanceSettings.ShowFooter)
            {
                foreach (CoreColumn column in grid.Columns)
                {
                    hashtable[column.DataField] = column.FooterValue;
                }
            }
            return(hashtable);
        }
 private string PreProcessJSON(CoreGrid grid, string gridJSON)
 {
     foreach (string key in grid.FunctionsHash.Keys)
     {
         string oldValue = $"\"{key}\":\"{grid.FunctionsHash[key]}\"";
         string newValue = $"\"{key}\":{grid.FunctionsHash[key]}";
         gridJSON = gridJSON.Replace(oldValue, newValue);
     }
     foreach (string key2 in grid.ReplacementsHash.Keys)
     {
         gridJSON = gridJSON.Replace(key2, grid.ReplacementsHash[key2].ToString());
     }
     return(gridJSON);
 }
        private string GetHtmlTable(CoreGrid grid, List <Hashtable> data)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(
                "<html><head><style> table, td {border:1px solid black} table { border-collapse:collapse; background:transparent}</style></head> ");

            stringBuilder.Append("<table>");
            stringBuilder.Append("<tr>");
            foreach (CoreColumn column in grid.Columns)
            {
                if (column.Visible)
                {
                    string arg       = string.IsNullOrEmpty(column.HeaderText) ? column.DataField : column.HeaderText;
                    string sizeRowPx = column.ExcelWidthRowPx != 0 ? column.ExcelWidthRowPx + "px;" : "";
                    if (!string.IsNullOrWhiteSpace(sizeRowPx))
                    {
                        stringBuilder.AppendFormat("<td style=\"width: {0}\">{1}</td>", sizeRowPx, arg);
                    }
                    else
                    {
                        stringBuilder.AppendFormat("<td>{0}</td>", arg);
                    }
                }
            }
            stringBuilder.Append("</tr>");
            for (int i = 0; i < data.Count; i++)
            {
                stringBuilder.Append("<tr>");
                for (int j = 0; j < grid.Columns.Count; j++)
                {
                    CoreColumn coreColumn = grid.Columns[j];
                    if (coreColumn.Visible)
                    {
                        string arg2 =
                            (!string.IsNullOrEmpty(coreColumn.DataField) &&
                             !string.IsNullOrEmpty(coreColumn.DataFormatString))
                                                ? coreColumn.FormatDataValue(data[i][coreColumn.DataField], coreColumn.HtmlEncode)
                                                : (data[i][coreColumn.DataField]?.ToString());
                        stringBuilder.AppendFormat("<td>{0}</td>", arg2);
                    }
                }

                stringBuilder.Append("</tr>");
            }
            stringBuilder.Append("</table>");
            return(stringBuilder.ToString());
        }
Example #18
0
        public static string GetWhereClause(CoreGrid grid, string searchField, string searchString, string searchOper)
        {
            string          text      = " && ";
            string          text2     = "";
            Hashtable       hashtable = new Hashtable();
            SearchArguments args      = new SearchArguments
            {
                SearchColumn    = searchField,
                SearchString    = searchString,
                SearchOperation = GetSearchOperationFromString(searchOper)
            };
            string str  = (text2.Length > 0) ? text : "";
            string str2 = ConstructLinqFilterExpression(grid, args);

            return(text2 + str + str2);
        }
Example #19
0
        public static string GetWhereClause(CoreGrid grid, string filters)
        {
            JsonMultipleSearch jsonMultipleSearch = JsonConvert.DeserializeObject <JsonMultipleSearch>(filters);
            string             text = "";

            foreach (MultipleSearchRule rule in jsonMultipleSearch.rules)
            {
                SearchArguments args = new SearchArguments
                {
                    SearchColumn    = rule.field,
                    SearchString    = rule.data,
                    SearchOperation = GetSearchOperationFromString(rule.op)
                };
                string str = (text.Length > 0) ? (" " + jsonMultipleSearch.groupOp + " ") : "";
                text = text + str + ConstructLinqFilterExpression(grid, args);
            }
            return(text);
        }
        public string RenderHtml(CoreGrid grid)
        {
            string text = "<table id='{0}'></table>";

            if (grid.ToolBarSettings.ToolBarPosition != ToolBarPosition.Hidden)
            {
                text += "<div id='{0}_pager'></div>";
            }
            //if (DateTime.Now > CompiledOn.CompilationDate.AddDays(45.0))
            //{
            //	text = "Yes .This is a trial version of CoreGrid for ASP.NET MVC which has expired.<br> Please, contact [email protected] for purchasing the product or for trial extension.";
            //	return text + File.GetCreationTime(Assembly.GetExecutingAssembly().Location).ToString();
            //}
            if (string.IsNullOrEmpty(grid.ID))
            {
                throw new Exception("You need to set ID for this grid.");
            }
            text = string.Format(text, grid.ID);
            return((grid.HierarchySettings.HierarchyMode != HierarchyMode.Child && grid.HierarchySettings.HierarchyMode != HierarchyMode.ParentAndChild) ? (text + GetStartupJavascript(grid, subgrid: false)) : (text + GetChildSubGridJavaScript(grid)));
        }
Example #21
0
        //internal static string ConstructLinqFilterExpression(CoreGrid grid, SearchArguments args)
        //{
        //    CoreColumn coreColumn = grid.Columns.Find((CoreColumn c) => c.DataField == args.SearchColumn);
        //    if (coreColumn.DataType == null)
        //    {
        //        throw new DataTypeNotSetException("CoreGridColumn.DataType must be set in order to perform search operations.");
        //    }

        //    string filterExpressionCompare = ((coreColumn.DataType == typeof(string)) ? true : false) ? "{0} {1} \"{2}\"" : "{0} {1} {2}";
        //    if (coreColumn.DataType == typeof(DateTime))
        //    {
        //        DateTime dateTime = DateTime.Parse(args.SearchString);
        //        string str = $"({dateTime.Year},{dateTime.Month},{dateTime.Day})";
        //        filterExpressionCompare = "{0} {1} DateTime" + str;
        //    }
        //    string str2 = $"{args.SearchColumn} != null AND ";
        //    return str2 + GetLinqExpression(filterExpressionCompare, args, coreColumn.SearchCaseSensitive, coreColumn.DataType);
        //}

        //private static string GetLinqExpression(string filterExpressionCompare, SearchArguments args, bool caseSensitive, Type dataType)
        //{
        //    string text = caseSensitive ? args.SearchString : args.SearchString.ToLower();
        //    string arg = args.SearchColumn;
        //    if (dataType != null && dataType == typeof(string) && !caseSensitive)
        //    {
        //        arg = $"{args.SearchColumn}.ToLower()";
        //    }
        //    switch (args.SearchOperation)
        //    {
        //        case SearchOperation.IsEqualTo:
        //            return string.Format(filterExpressionCompare, arg, "=", text);
        //        case SearchOperation.IsNotEqualTo:
        //            return string.Format(filterExpressionCompare, arg, "<>", text);
        //        case SearchOperation.IsLessOrEqualTo:
        //            return string.Format(filterExpressionCompare, arg, "<=", text);
        //        case SearchOperation.IsLessThan:
        //            return string.Format(filterExpressionCompare, arg, "<", text);
        //        case SearchOperation.IsGreaterOrEqualTo:
        //            return string.Format(filterExpressionCompare, arg, ">=", text);
        //        case SearchOperation.IsGreaterThan:
        //            return string.Format(filterExpressionCompare, arg, ">", text);
        //        case SearchOperation.BeginsWith:
        //            return $"{arg}.StartsWith(\"{text}\")";
        //        case SearchOperation.Contains:
        //            return $"{arg}.Contains(\"{text}\")";
        //        case SearchOperation.EndsWith:
        //            return $"{arg}.EndsWith(\"{text}\")";
        //        case SearchOperation.DoesNotBeginWith:
        //            return $"!{arg}.StartsWith(\"{text}\")";
        //        case SearchOperation.DoesNotContain:
        //            return $"!{arg}.Contains(\"{text}\")";
        //        case SearchOperation.DoesNotEndWith:
        //            return $"!{arg}.EndsWith(\"{text}\")";
        //        default:
        //            throw new Exception("Invalid search operation.");
        //    }
        //}

        #endregion

        #region Старая версия

        internal static string ConstructLinqFilterExpression(CoreGrid grid, SearchArguments args)
        {
            var column = grid.Columns.Find(c => c.DataField == args.SearchColumn);

            if (column.DataType == null)
            {
                throw new DataTypeNotSetException("CoreGridColumn.DataType must be set in order to perform search operations.");
            }

            if (!string.IsNullOrEmpty(column.SearchDataField))
            {
                args.SearchColumn = column.SearchDataField;
                if (grid.Columns.Any(c => c.DataField == args.SearchColumn))
                {
                    return(ConstructLinqFilterExpression(grid, args));
                }
            }

            string filterExpressionCompare = (column.DataType == typeof(string)) ? "{0} {1} \"{2}\"" : "{0} {1} {2}";

            return(string.Format("{0} != null AND ", args.SearchColumn) + GetLinqExpression(filterExpressionCompare, args, column.SearchCaseSensitive, column.DataType));
        }
Example #22
0
        public static string GetWhereClause(CoreGrid grid, Dictionary <string, string> queryString)
        {
            string    text      = " && ";
            string    text2     = "";
            Hashtable hashtable = new Hashtable();

            foreach (CoreColumn column in grid.Columns)
            {
                if (queryString.TryGetValue(column.DataField, out string value))
                {
                    SearchArguments args = new SearchArguments
                    {
                        SearchColumn    = column.DataField,
                        SearchString    = value,
                        SearchOperation = column.SearchToolBarOperation
                    };
                    string str  = (text2.Length > 0) ? text : "";
                    string str2 = ConstructLinqFilterExpression(grid, args);
                    text2 = text2 + str + str2;
                }
            }
            return(text2);
        }
        private string GetViewRowOptions(CoreGrid grid)
        {
            JsonViewRowDialog jsonViewRowDialog = new JsonViewRowDialog(grid);

            return(jsonViewRowDialog.Process());
        }
        private string GetSearchOptions(CoreGrid grid)
        {
            JsonSearchDialog jsonSearchDialog = new JsonSearchDialog(grid);

            return(jsonSearchDialog.Process());
        }
        private string GetDelOptions(CoreGrid grid)
        {
            JsonDelDialog jsonDelDialog = new JsonDelDialog(grid);

            return(jsonDelDialog.Process());
        }
 public PivotDimension(CoreGrid grid)
     : this()
 {
     _functionsHash = grid.FunctionsHash;
 }
 public JsonViewRowDialog(CoreGrid grid)
 {
     _jsonValues = new Hashtable();
     _grid       = grid;
 }
 public JsonColModel(CoreColumn column, CoreGrid grid)
     : this(grid)
 {
     FromColumn(column);
 }
        private string GetStartupOptions(CoreGrid grid, bool subGrid)
        {
            StringBuilder stringBuilder   = new StringBuilder();
            string        text            = subGrid ? "jQuery('#' + subgrid_table_id)" : $"jQuery('#{grid.ID}')";
            string        arg             = subGrid ? "jQuery('#' + pager_id)" : string.Format("jQuery('#{0}')", grid.ID + "_pager");
            string        pagerSelectorID = subGrid ? "'#' + pager_id" : string.Format("'#{0}'", grid.ID + "_pager");
            string        text2           = subGrid ? "&parentRowID=' + row_id + '" : string.Empty;
            string        text3           = (grid.DataUrl.IndexOf("?") > 0) ? "&" : "?";
            string        text4           = (grid.EditUrl.IndexOf("?") > 0) ? "&" : "?";
            string        text5           = $"{grid.DataUrl}{text3}jqGridID={grid.ID}{text2}";
            string        arg2            = $"{grid.EditUrl}{text4}jqGridID={grid.ID}&editMode=1{text2}";

            if (grid.Columns.Count > 0 && grid.Columns[0].Frozen)
            {
                grid.AppearanceSettings.ShrinkToFit = false;
            }
            string value = $"{text}.jqGrid({{";

            if (grid.PivotSettings.IsPivotEnabled())
            {
                string arg3 = grid.PivotSettings.ToJSON();
                value = $"{text}.jqGrid('jqPivot','{text5}',{arg3},{{";
            }
            stringBuilder.Append(value);
            stringBuilder.AppendFormat("url: '{0}'", text5);
            stringBuilder.AppendFormat(",editurl: '{0}'", arg2);
            if (!string.IsNullOrEmpty(grid.IDPrefix))
            {
                stringBuilder.AppendFormat(",idPrefix: '{0}'", grid.IDPrefix);
            }
            if (!grid.PivotSettings.IsPivotEnabled())
            {
                stringBuilder.AppendFormat(",datatype: 'json'");
            }
            stringBuilder.AppendFormat(",page: {0}", grid.PagerSettings.CurrentPage);
            if (!grid.PivotSettings.IsPivotEnabled())
            {
                stringBuilder.AppendFormat(",colNames: {0}", GetColNames(grid));
                stringBuilder.AppendFormat(",colModel: {0}", GetColModel(grid));
            }
            stringBuilder.AppendFormat(",viewrecords: true");
            stringBuilder.AppendFormatIfTrue(grid.AutoEncode, ",autoencode: true");
            stringBuilder.AppendFormat(",scrollrows: {0}", grid.ScrollToSelectedRow.ToString().ToLower());
            if (grid.SortSettings.MultiColumnSorting)
            {
                stringBuilder.AppendFormat(",multiSort: true");
            }
            stringBuilder.AppendFormat(",prmNames: {{ id: \"{0}\" }}", Util.GetPrimaryKeyField(grid));
            if (grid.AppearanceSettings.ShowFooter)
            {
                stringBuilder.Append(",footerrow: true");
                stringBuilder.Append(",userDataOnFooter: true");
            }
            if (!grid.AppearanceSettings.ShrinkToFit)
            {
                stringBuilder.Append(",shrinkToFit: false");
            }
            stringBuilder.Append(",headertitles: true");
            if (grid.ColumnReordering)
            {
                stringBuilder.Append(",sortable: true");
            }
            if (grid.StoreNavigationOptions)
            {
                stringBuilder.Append(",storeNavOptions: true");
            }
            if (grid.AppearanceSettings.ScrollBarOffset != 18)
            {
                stringBuilder.AppendFormat(",scrollOffset: {0}", grid.AppearanceSettings.ScrollBarOffset);
            }
            if (grid.AppearanceSettings.RightToLeft)
            {
                stringBuilder.Append(",direction: 'rtl'");
            }
            if (grid.AutoWidth)
            {
                stringBuilder.Append(",autowidth: true");
            }
            if (!grid.ShrinkToFit)
            {
                stringBuilder.Append(",shrinkToFit: false");
            }
            if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Top)
            {
                stringBuilder.Append(",toppager: true");
            }
            if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Bottom)
            {
                stringBuilder.AppendFormat(",pager: {0}", arg);
            }
            if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom)
            {
                stringBuilder.AppendFormat(",pager: {0}", arg);
                stringBuilder.Append(",toppager: true");
            }
            if (grid.RenderingMode == RenderingMode.Optimized)
            {
                if (grid.HierarchySettings.HierarchyMode != 0)
                {
                    throw new Exception("Optimized rendering is not compatible with hierarchy.");
                }
                stringBuilder.Append(",gridview: true");
            }
            if (grid.HierarchySettings.HierarchyMode == HierarchyMode.Parent || grid.HierarchySettings.HierarchyMode == HierarchyMode.ParentAndChild)
            {
                stringBuilder.Append(",subGrid: true");
                stringBuilder.AppendFormat(",subGridOptions: {0}", grid.HierarchySettings.ToJSON());
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.SubGridRowExpanded))
            {
                stringBuilder.AppendFormat(",subGridRowExpanded: {0}", grid.ClientSideEvents.SubGridRowExpanded);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.ServerError))
            {
                stringBuilder.AppendFormat(",errorCell: {0}", grid.ClientSideEvents.ServerError);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowSelect))
            {
                stringBuilder.AppendFormat(",onSelectRow: {0}", grid.ClientSideEvents.RowSelect);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.ColumnSort))
            {
                stringBuilder.AppendFormat(",onSortCol: {0}", grid.ClientSideEvents.ColumnSort);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowDoubleClick))
            {
                stringBuilder.AppendFormat(",ondblClickRow: {0}", grid.ClientSideEvents.RowDoubleClick);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowRightClick))
            {
                stringBuilder.AppendFormat(",onRightClickRow: {0}", grid.ClientSideEvents.RowRightClick);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.LoadDataError))
            {
                stringBuilder.AppendFormat(",loadError: {0}", grid.ClientSideEvents.LoadDataError);
            }
            else
            {
                stringBuilder.AppendFormat(",loadError: {0}", "jqGrid_aspnet_loadErrorHandler");
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.GridInitialized))
            {
                stringBuilder.AppendFormat(",gridComplete: {0}", grid.ClientSideEvents.GridInitialized);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.BeforeAjaxRequest))
            {
                stringBuilder.AppendFormat(",beforeRequest: {0}", grid.ClientSideEvents.BeforeAjaxRequest);
            }
            if (!string.IsNullOrEmpty(grid.ClientSideEvents.AfterAjaxRequest))
            {
                stringBuilder.AppendFormat(",loadComplete: {0}", grid.ClientSideEvents.AfterAjaxRequest);
            }
            stringBuilder.Append(",colMenu: true");
            if (grid.TreeGridSettings.Enabled)
            {
                stringBuilder.AppendFormat(",treeGrid: true");
                stringBuilder.AppendFormat(",treedatatype: 'json'");
                stringBuilder.AppendFormat(",treeGridModel: 'adjacency'");
                string arg4 = "{ level_field: 'tree_level', parent_id_field: 'tree_parent', leaf_field: 'tree_leaf', expanded_field: 'tree_expanded', loaded: 'tree_loaded', icon_field: 'tree_icon' }";
                stringBuilder.AppendFormat(",treeReader: {0}", arg4);
                stringBuilder.AppendFormat(",ExpandColumn: '{0}'", GetFirstVisibleDataField(grid));
                Hashtable hashtable = new Hashtable();
                if (!string.IsNullOrEmpty(grid.TreeGridSettings.CollapsedIcon))
                {
                    hashtable.Add("plus", grid.TreeGridSettings.CollapsedIcon);
                }
                if (!string.IsNullOrEmpty(grid.TreeGridSettings.ExpandedIcon))
                {
                    hashtable.Add("minus", grid.TreeGridSettings.ExpandedIcon);
                }
                if (!string.IsNullOrEmpty(grid.TreeGridSettings.LeafIcon))
                {
                    hashtable.Add("leaf", grid.TreeGridSettings.LeafIcon);
                }
                if (hashtable.Count > 0)
                {
                    stringBuilder.AppendFormat(",treeIcons: {0}", JsonConvert.SerializeObject((object)hashtable));
                }
            }
            if (grid.LoadOnce)
            {
                stringBuilder.Append(",loadonce: true");
                stringBuilder.Append(",ignoreCase: true");
            }
            if (grid.ColumnMenu)
            {
                stringBuilder.Append(",colMenu: true");
            }
            if (!grid.AppearanceSettings.HighlightRowsOnHover)
            {
                stringBuilder.Append(",hoverrows: false");
            }
            if (grid.AppearanceSettings.AlternateRowBackground)
            {
                stringBuilder.Append(",altRows: true");
            }
            if (grid.AppearanceSettings.ShowRowNumbers)
            {
                stringBuilder.Append(",rownumbers: true");
            }
            if (grid.AppearanceSettings.RowNumbersColumnWidth != 25)
            {
                stringBuilder.AppendFormat(",rownumWidth: {0}", grid.AppearanceSettings.RowNumbersColumnWidth.ToString());
            }
            if (grid.PagerSettings.ScrollBarPaging)
            {
                stringBuilder.AppendFormat(",scroll: 1");
            }
            stringBuilder.AppendFormat(",rowNum: {0}", grid.PagerSettings.PageSize.ToString());
            stringBuilder.AppendFormat(",rowList: {0}", grid.PagerSettings.PageSizeOptions.ToString());
            if (!string.IsNullOrEmpty(grid.PagerSettings.NoRowsMessage))
            {
                stringBuilder.AppendFormat(",emptyrecords: '{0}'", grid.PagerSettings.NoRowsMessage.ToString());
            }
            if (grid.Responsive)
            {
                stringBuilder.Append(",responsive: true");
            }
            if (grid.StyleUI != "jQueryUI")
            {
                stringBuilder.AppendFormat(",styleUI: '{0}'", grid.StyleUI);
            }
            stringBuilder.AppendFormat(",editDialogOptions: {0}", GetEditOptions(grid));
            stringBuilder.AppendFormat(",addDialogOptions: {0}", GetAddOptions(grid));
            stringBuilder.AppendFormat(",delDialogOptions: {0}", GetDelOptions(grid));
            stringBuilder.AppendFormat(",searchDialogOptions: {0}", GetSearchOptions(grid));
            stringBuilder.AppendFormat(",viewRowDialogOptions: {0}", GetViewRowOptions(grid));
            string format = (!grid.TreeGridSettings.Enabled) ? ",jsonReader: {{ repeatitems:false,subgrid:{{repeatitems:false}}  }}" : ",jsonReader: {{ id: \"{0}\", repeatitems:false,subgrid:{{repeatitems:false}} }}";

            if (grid.PivotSettings.IsPivotEnabled())
            {
                stringBuilder.Append(",jsonReader: { repeatitems:false,subgrid:{repeatitems:false} }");
            }
            else
            {
                stringBuilder.AppendFormat(format, grid.Columns[Util.GetPrimaryKeyIndex(grid)].DataField);
            }
            if (!string.IsNullOrEmpty(grid.SortSettings.InitialSortColumn))
            {
                stringBuilder.AppendFormat(",sortname: '{0}'", grid.SortSettings.InitialSortColumn);
            }
            stringBuilder.AppendFormat(",sortorder: '{0}'", grid.SortSettings.InitialSortDirection.ToString().ToLower());
            if (grid.MultiSelect)
            {
                stringBuilder.Append(",multiselect: true");
                if (grid.MultiSelectMode == MultiSelectMode.SelectOnCheckBoxClickOnly)
                {
                    stringBuilder.AppendFormat(",multiboxonly: true", grid.MultiSelect.ToString().ToLower());
                }
                if (grid.MultiSelectKey != 0)
                {
                    stringBuilder.AppendFormat(",multikey: '{0}'", GetMultiKeyString(grid.MultiSelectKey));
                }
            }
            if (!string.IsNullOrEmpty(grid.AppearanceSettings.Caption))
            {
                stringBuilder.AppendFormat(",caption: '{0}'", grid.AppearanceSettings.Caption);
            }
            if (grid.AppearanceSettings.HiddenGrid)
            {
                stringBuilder.Append(",hiddengrid:true");
            }
            if (!grid.AppearanceSettings.ShowHideGridCaptionButton)
            {
                stringBuilder.Append(",hidegrid:false");
            }
            if (!string.IsNullOrEmpty(grid.Width))
            {
                stringBuilder.AppendFormat(",width: '{0}'", grid.Width.ToString().Replace("px", ""));
            }
            if (!string.IsNullOrEmpty(grid.Height))
            {
                stringBuilder.AppendFormat(",height: '{0}'", grid.Height.ToString().Replace("px", ""));
            }
            if (!string.IsNullOrEmpty(grid.PostData))
            {
                stringBuilder.AppendFormat(",postData: {0}", grid.PostData);
            }
            if (grid.GroupSettings.GroupFields.Count > 0)
            {
                stringBuilder.Append(grid.GroupSettings.ToJSON());
            }
            stringBuilder.AppendFormat(",viewsortcols: [{0},'{1}',{2}]", "false", grid.SortSettings.SortIconsPosition.ToString().ToLower(), (grid.SortSettings.SortAction == SortAction.ClickOnHeader) ? "true" : "false");
            stringBuilder.AppendFormat("}})\r");
            stringBuilder.Append(";");
            stringBuilder.Append(GetLoadErrorHandler());
            stringBuilder.Append(";");
            if (grid.PivotSettings.IsPivotEnabled())
            {
                stringBuilder.AppendFormat("{0}.bind('jqGridInitGrid.pivotGrid',(function(){{", text);
            }
            if (!grid.PagerSettings.ScrollBarPaging && grid.EnableKeyboardNavigation)
            {
                stringBuilder.AppendFormat("{0}.bindKeys();", text);
            }
            stringBuilder.Append(GetToolBarOptions(grid, subGrid, pagerSelectorID, text));
            if (grid.PivotSettings.IsPivotEnabled())
            {
                stringBuilder.Append("}));");
            }
            if (grid.HeaderGroups.Count > 0)
            {
                List <Hashtable> list = new List <Hashtable>();
                foreach (CoreGridHeaderGroup headerGroup in grid.HeaderGroups)
                {
                    list.Add(headerGroup.ToHashtable());
                }
                stringBuilder.AppendFormat("{0}.setGroupHeaders( {{ useColSpanStyle:true,groupHeaders:{1} }});", text, JsonConvert.SerializeObject((object)list));
            }
            if (grid.ToolBarSettings.ShowSearchToolBar)
            {
                stringBuilder.AppendFormat("{0}.filterToolbar({1});", text, new JsonSearchToolBar(grid).Process());
            }
            if (grid.Columns.Count > 0 && grid.Columns[0].Frozen)
            {
                stringBuilder.AppendFormat("{0}.setFrozenColumns();", text);
            }
            return(PreProcessJSON(grid, stringBuilder.ToString()));
        }
 public JsonColModel(CoreGrid grid)
 {
     _jsonValues = new Hashtable();
     _grid       = grid;
 }