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; }
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()); }
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; }
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 }; }
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; }
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() } }; }
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); }
private static void SetSearchOperatorsIntColumn(CoreColumn jqColumn, JqGridBuilderColumnModel columnModel) { jqColumn.SearchToolBarOperation = columnModel.AttributeInfo.DefaultSearchToolBarOperation ?? SearchOperation.IsEqualTo; jqColumn.SearchOptions = JqGridHelper.GetSearchOperators(typeof(int)); }