Exemple #1
0
 private static void SetSearchOperatorsStringColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel)
 {
     //#6188
     //jqColumn.SearchToolBarOperation =
     //    columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.Contains;
     jqColumn.SearchOptions          = JqGridHelper.GetSearchOperators(typeof(string));
     jqColumn.SearchToolBarOperation = SearchOperation.Contains;
     jqColumn.ShowSearchOperators    = false;
 }
Exemple #2
0
        public virtual 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} .text{ mso-number-format:\"\\@\";/*force text*/ }</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;
                    var    styleSettings = _exportExcelSettings.FirstOrDefault(t => t.Key.Name == column.DataField);
                    if (styleSettings.Value != null)
                    {
                        stringBuilder.AppendFormat("<td class=\"text\" style=\"{0}\"\">{1}</td>", BuildColumnStyle(styleSettings.Value, RenderExcelElementType.Header), arg);
                    }
                    else
                    {
                        stringBuilder.AppendFormat("<td class=\"text\">{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());
                        var styleSettings = _exportExcelSettings.FirstOrDefault(t => t.Key.Name == coreColumn.DataField);

                        if (styleSettings.Value != null)
                        {
                            stringBuilder.AppendFormat("<td class=\"text\" style=\"{0}\"\">{1}</td>", BuildColumnStyle(styleSettings.Value, RenderExcelElementType.Row), arg2);
                        }
                        else
                        {
                            //http://cosicimiento.blogspot.com/2008/11/styling-excel-cells-with-mso-number.html
                            stringBuilder.AppendFormat("<td class=\"text\">{0}</td>", arg2);
                        }
                    }
                }

                stringBuilder.Append("</tr>");
            }
            stringBuilder.Append("</table>");
            return(stringBuilder.ToString());
        }
Exemple #3
0
        private void SetSearchOperatorsDateTimeColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel)
        {
            if (columnModel.AttributeInfo.NeedSearchEditorControl)
            {
                jqColumn.SearchType = SearchType.DatePicker;
            }

            jqColumn.SearchToolBarOperation =
                columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo;
            jqColumn.SearchOptions    = JqGridHelper.GetSearchOperators(typeof(DateTime));
            jqColumn.DataFormatString = string.IsNullOrEmpty(columnModel.AttributeInfo.DateFormatString)
                ? "{0:dd.MM.yyyy}"
                : columnModel.AttributeInfo.DateFormatString;
        }
Exemple #4
0
        private void SetSearchOperatorsDecimalColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel)
        {
            SetSearchOperatorsIntColumn(jqColumn, columnModel);

            columnModel.AttributeInfo.DecimalFormat = string.IsNullOrEmpty(columnModel.AttributeInfo.DecimalFormat)
                ? "n2"
                : columnModel.AttributeInfo.DecimalFormat;

            var decumalFormatterFunction =
                "function(cell){try{var globalValue=Globalize.parseFloat(cell);if(isNaN(globalValue))" +
                "return '';" +
                "return Globalize.format(globalValue,'" + columnModel.AttributeInfo.DecimalFormat + "');}catch(e){}}";

            jqColumn.Formatter = new CustomFormatter
            {
                FormatFunction = string.IsNullOrEmpty(columnModel.AttributeInfo.CustomFormatFunction)
                    ? decumalFormatterFunction
                    : columnModel.AttributeInfo.CustomFormatFunction
            };
        }
Exemple #5
0
        public static void AddSearchDropdown(CoreColumn column, List <SelectListItem> items,
                                             SearchOperation searchOperation = SearchOperation.IsEqualTo, bool needAllItem = true)
        {
            column.SearchToolBarOperation = searchOperation;
            column.SearchOptions          = new List <SearchOperation>
            {
                searchOperation
            };
            column.SearchType = SearchType.DropDown;
            var searchList = new List <SelectListItem>();

            if (needAllItem)
            {
                searchList.Add(new SelectListItem {
                    Text = "Все", Value = null
                });
            }

            searchList.AddRange(items);

            column.ShowSearchOperators = false;
            column.SearchList          = searchList;
        }
Exemple #6
0
        private void SetSearchOperatorsBoolColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel)
        {
            jqColumn.Formatter = new CheckBoxFormatter {
                Enabled = jqColumn.Editable
            };
            jqColumn.SearchToolBarOperation =
                columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo;
            jqColumn.ShowSearchOperators = false;
            jqColumn.SearchOptions       = JqGridHelper.GetSearchOperators(typeof(bool));

            jqColumn.SearchType = SearchType.DropDown;
            jqColumn.SearchList = new List <SelectListItem>
            {
                new SelectListItem {
                    Text = "Все", Value = null
                },
                new SelectListItem {
                    Text = "Да", Value = true.ToString()
                },
                new SelectListItem {
                    Text = "Нет", Value = false.ToString()
                }
            };
        }
Exemple #7
0
        private CoreColumn GetColumn(JqGridBuilderColumnModel columnModel)
        {
            Func <JqGridBuilderColumnModel, string> getDataField = c =>
            {
                var parentNameField = string.Empty;
                if (c.Parent != null)
                {
                    parentNameField = c.Parent.Name + ".";
                }
                return(parentNameField + (c.AttributeInfo.DataField ?? c.PropertyInfo.Name));
            };

            var jqColumn = new CoreColumn
            {
                // временное решение для смарт реестра
                GroupTemplate = columnModel.Parent != null
                    ? columnModel.Parent.GetAttributes <GridIncludedPropertyAttribute>().Select(t => t.ColumnName)
                                .FirstOrDefault()
                    : null,
                //
                DataType   = columnModel.AttributeInfo.DataType ?? columnModel.PropertyInfo.PropertyType,
                DataField  = getDataField(columnModel),
                PrimaryKey = columnModel.AttributeInfo.PrimaryKeyField || columnModel.PropertyInfo.Name == "Id",
                Editable   = columnModel.AttributeInfo.Editable,
                EditType   = columnModel.AttributeInfo.EditType,
                Searchable = !columnModel.AttributeInfo.PrimaryKeyField && columnModel.PropertyInfo.Name != "Id" &&
                             columnModel.AttributeInfo.Searchable,
                HeaderText = GetHeaderText(columnModel.PropertyInfo),
                TextAlign  = TextAlign.Center,
                Visible    = !columnModel.AttributeInfo.PrimaryKeyField && columnModel.PropertyInfo.Name != "Id" &&
                             !columnModel.AttributeInfo.Hidden,
                Width = columnModel.AttributeInfo.Width,
                ShowSearchOperators    = columnModel.AttributeInfo.ShowSearchOperators,
                SortByColumnNameValues = columnModel.AttributeInfo.SortByColumnNameValues ?? string.Empty,
                ShowColumnMenu         = columnModel.AttributeInfo.ColumnMenu,
                //TemplateRendererViewName = "",
                //TemplateRendererViewName =  columnModel.UiHintInfo != null && !columnModel.AttributeInfo.DisableUiHintTemplateRenderer ? columnModel.UiHintInfo.UIHint : string.Empty,//временно отключил
                ColumnMenuOptions = new ColumnMenuOptions
                {
                    Columns = true, Sorting = true
                },                                                                          // move it to attr?
                ExportToExcel = !columnModel.AttributeInfo.PrimaryKeyField && columnModel.PropertyInfo.Name != "Id" &&
                                columnModel.AttributeInfo.ExportToExcel,
                SearchDataField = columnModel.AttributeInfo.SearchDataField,
                Sortable        = columnModel.AttributeInfo.Sortable
            };

            if (jqColumn.DataType == typeof(bool) || jqColumn.DataType == typeof(bool?))
            {
                SetSearchOperatorsBoolColumn(jqColumn, columnModel);
            }
            else if (jqColumn.DataType == typeof(DateTime) ||
                     jqColumn.DataType == typeof(DateTime?))
            {
                SetSearchOperatorsDateTimeColumn(jqColumn, columnModel);
            }
            else if (jqColumn.DataType == typeof(decimal) ||
                     jqColumn.DataType == typeof(decimal?))
            {
                SetSearchOperatorsDecimalColumn(jqColumn, columnModel);
            }
            else if (jqColumn.DataType == typeof(int) ||
                     jqColumn.DataType == typeof(int?))
            {
                SetSearchOperatorsIntColumn(jqColumn, columnModel);
            }
            else if (jqColumn.DataType == typeof(string))
            {
                SetSearchOperatorsStringColumn(jqColumn, columnModel);
            }

            if (!string.IsNullOrEmpty(columnModel.AttributeInfo.CustomFormatFunction))
            {
                jqColumn.Formatter = new CustomFormatter
                {
                    FormatFunction = columnModel.AttributeInfo.CustomFormatFunction
                }
            }
            ;


            if (columnModel.AttributeInfo.DataType == null)
            {
                if (columnModel.PropertyInfo.PropertyType == typeof(int))
                {
                    jqColumn.SearchToolBarOperation =
                        columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo;
                    jqColumn.SearchOptions = new List <SearchOperation>
                    {
                        SearchOperation.IsEqualTo
                    };
                }
            }
            else
            {
                if (columnModel.AttributeInfo.DataType == typeof(int))
                {
                    jqColumn.SearchToolBarOperation =
                        columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo;
                    jqColumn.SearchOptions = new List <SearchOperation>
                    {
                        SearchOperation.IsEqualTo
                    };
                }
            }

            if (columnModel.AttributeInfo.MultipleSearch)
            {
                jqColumn.SearchToolBarOperation =
                    columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsIn;
                if (jqColumn.SearchOptions != null)
                {
                    jqColumn.SearchOptions.Add(SearchOperation.IsIn);
                }
            }

            jqColumn.SearchOptions =
                jqColumn.SearchOptions.OrderByDescending(t => t == jqColumn.SearchToolBarOperation).ThenBy(t => t)
                .ToList();

            if (columnModel.AttributeInfo.CustomSearchOperations != null &&
                columnModel.AttributeInfo.CustomSearchOperations.Any())
            {
                jqColumn.SearchOptions = columnModel.AttributeInfo.CustomSearchOperations.ToList();
            }

            return(jqColumn);
        }
Exemple #8
0
 private static void SetSearchOperatorsIntColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel)
 {
     jqColumn.SearchToolBarOperation =
         columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo;
     jqColumn.SearchOptions = JqGridHelper.GetSearchOperators(typeof(int));
 }