Exemple #1
0
        protected string PutQuery(NameValueCollection queryString)
        {
            string result = "UPDATE ";

            if (!string.IsNullOrEmpty(CatalogName))
            {
                result += CatalogName + ".";
            }
            result += Name + " SET";
            string predicat = " WHERE 1=1";

            foreach (string name in queryString)
            {
                if (!FilterableColumns.Any() || FilterableColumns.Contains(name))
                {
                    if (Criteria.TryParse(queryString[name], out Criteria criteria))
                    {
                        predicat += " AND " + criteria.toSqlWhereClause(name);
                    }
                    else
                    {
                        predicat += " AND " + name;
                        if (queryString[name].Contains("%"))
                        {
                            predicat += " LIKE '" + queryString[name] + "'";
                        }
                        else
                        {
                            predicat += "=" + queryString[name].ToSqlValue();
                        }
                    }
                }
                else
                {
                    if (!VisibleColumns.Any() || VisibleColumns.Contains(name))
                    {
                        result += name + "=" + queryString[name].ToSqlValue() + ", ";
                    }
                }
            }

            result += string.Join(", ", DefaultColumns.Select(c => c.Key + "=" + c.Value.ToSqlValue())) + predicat;
            return(result);
        }
Exemple #2
0
        private GridRenderingData CreateRenderingData()
        {
            var renderingData = new GridRenderingData
            {
                TableHtmlAttributes = TableHtmlAttributes,
                DataKeyStore        = DataKeyStore,
                HtmlHelper          = new GridHtmlHelper <T>(ViewContext, DataKeyStore),
                UrlBuilder          = UrlBuilder,
                DataSource          = DataProcessor.ProcessedDataSource,
                Columns             = VisibleColumns.Cast <IGridColumn>(),
                GroupMembers        = DataProcessor.GroupDescriptors.Select(g => g.Member),
                Mode                   = CurrentItemMode,
                EditMode               = Editing.Mode,
                HasDetailView          = HasDetailView,
                Colspan                = Colspan - Columns.Count(column => column.Hidden),
                DetailViewTemplate     = MapDetailViewTemplate(HasDetailView ? DetailView.Template : null),
                NoRecordsTemplate      = FormatNoRecordsTemplate(),
                Localization           = Localization,
                ScrollingHeight        = Scrolling.Height,
                EditFormHtmlAttributes = Editing.FormHtmlAttributes,
                ShowFooter             = Footer && VisibleColumns.Any(c => c.FooterTemplate.HasValue() || c.ClientFooterTemplate.HasValue()),
                AggregateResults       = DataProcessor.AggregatesResults,
                Aggregates             = Aggregates.SelectMany(aggregate => aggregate.Aggregates),
                GroupsCount            = DataProcessor.GroupDescriptors.Count,
                ShowGroupFooter        = Aggregates.Any() && VisibleColumns.OfType <IGridBoundColumn>().Any(c => c.GroupFooterTemplate.HasValue()),
                PopUpContainer         = new HtmlFragment(),
#if MVC2 || MVC3
                CreateNewDataItem  = () => Editing.DefaultDataItem(),
                InsertRowPosition  = Editing.InsertRowPosition,
                EditTemplateName   = Editing.TemplateName,
                AdditionalViewData = Editing.AdditionalViewData,
                FormId             = ViewContext.FormContext.FormId,
#endif
                Callback = RowActionCallback
            };

            if (RowTemplate.HasValue())
            {
                renderingData.RowTemplate = (dataItem, container) => RowTemplate.Apply((T)dataItem, container);
            }

            return(renderingData);
        }
Exemple #3
0
        protected string PostQuery(NameValueCollection queryString)
        {
            string result = "INSERT INTO ";

            if (!string.IsNullOrEmpty(CatalogName))
            {
                result += CatalogName + ".";
            }
            result += Name + " (";
            string values = " VALUES (";

            foreach (string name in queryString)
            {
                if (!VisibleColumns.Any() || VisibleColumns.Contains(name))
                {
                    result += name + ", ";
                    values += queryString[name].ToSqlValue() + ", ";
                }
            }

            result += string.Join(", ", DefaultColumns.Keys) + ")" + values + string.Join(", ", DefaultColumns.Select(c => c.Value.ToSqlValue())) + ")";
            return(result);
        }
        public List <PropertyInfo> GetColumns()
        {
            if (_columns == null)
            {
                var allColumns = typeof(T).GetProperties()
                                 .Where(p => !ColumnsConfig.ColumnsToIgnore.Contains(p.Name)).ToList();

                if (VisibleColumns.Any())
                {
                    var invalidColumns = VisibleColumns.Where(v => !allColumns.Select(c => c.Name).Contains(v));
                    if (invalidColumns.Any())
                    {
                        throw new InvalidColumnNameException(invalidColumns.ToDelimitedString());
                    }
                }

                var orderedColumns = VisibleColumns.Select(visibleColumn => allColumns.FirstOrDefault(c => c.Name == visibleColumn)).ToList();
                orderedColumns.AddRange(allColumns.Where(c => !c.IsVirtual() && !orderedColumns.Contains(c)));

                _columns = new List <PropertyInfo>();
                _columns.AddRange(orderedColumns);
            }
            return(_columns);
        }
        public List <DataTableColumnInfo> GetColumnInfos()
        {
            if (_columnInfos == null)
            {
                _columnInfos = new List <DataTableColumnInfo>();

                var keyColumns   = GetKeyColumns();
                var columnsInfos = GetColumns().Select((c, index) =>
                {
                    var info = new DataTableColumnInfo(index)
                    {
                        IsDatabound = c.IsDataBound(),
                        IsVisible   = !keyColumns.Select(k => k.Name).Contains(c.Name) && (!VisibleColumns.Any() || VisibleColumns.Contains(c.Name)),
                        DataType    = c.PropertyType.ToString().ToLower()
                    };
                    info.UpdateData(c.Name);
                    info.UpdateName(c.GetDisplayName());
                    return(info);
                }).ToList();

                _columnInfos.AddRange(columnsInfos);
            }
            return(_columnInfos);
        }
Exemple #6
0
 public bool HasCustomHeader()
 {
     return(VisibleColumns.Any(m => m.CustomHeader != null));
 }