[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(StockManMVC.MVCGridConfig), "RegisterGrids")] namespace StockManMVC { using System; using System.Web; using System.Web.Mvc; using System.Linq; using System.Collections.Generic; using MVCGrid.Models; using MVCGrid.Web; using Models; using Controllers; public static class MVCGridConfig { private static StockManEntities db = new StockManEntities(); public static void RegisterGrids() { GridDefaults gridDefaults = new GridDefaults() { //Auth AuthorizationType = AuthorizationType.AllowAnonymous, //Paginazione Paging = true, ItemsPerPage = 10, AllowChangingPageSize = true, MaxItemsPerPage = 100, //Sorting Sorting = true, DefaultSortDirection = SortDirection.Asc, //Altro NoResultsMessage = "Spiacenti, nessun risultato disponibile." }; ColumnDefaults colDefaults = new ColumnDefaults() { EnableSorting = true, AllowChangeVisibility = true, Visible = true, EnableFiltering = true }; MVCGridDefinitionTable.Add("ItemsGrid", new MVCGridBuilder(gridDefaults, colDefaults) // aggiungo valori di default... .WithSorting(sorting: true, defaultSortColumn: "Descr") //, defaultSortDirection: SortDirection.Dsc .WithAdditionalQueryOptionNames("search") //.WithRowCssClassExpression(p => p.QtaCurr == 0 ? "warning" : "") // commentata x ora, poi potrebbe servire... .WithQueryStringPrefix("ItemsGrd") .AddColumns(cols => { //Add your columns here cols.Add("ViewLink").WithColumnName("ViewLink") .WithSorting(false) .WithVisibility(true, false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Details", "Items", new { id = i.ID, ItemID = i.ID })) .WithValueTemplate(""); cols.Add("Family").WithColumnName("Family") .WithVisibility(true, false) .WithHeaderText("Famiglia") .WithValueExpression(i => i.ItemFamily.Descr); cols.Add("CodInt").WithColumnName("CodInt") .WithVisibility(true, false) .WithHeaderText("Cod.Int") .WithValueExpression(i => i.CodInt); cols.Add("Descr").WithColumnName("Descr") .WithVisibility(true, false) .WithHeaderText("Articolo") .WithValueExpression(i => i.Descr); // qui legare il valore... cols.Add("CodExt").WithColumnName("CodExt") .WithHeaderText("Cod.Ext") .WithValueExpression(i => i.CodExt); cols.Add("DescrExt").WithColumnName("DescrExt") .WithVisibility(false, true) .WithHeaderText("Descrizione Fornitore") .WithValueExpression(i => i.DescrExt); cols.Add("QtaMin").WithColumnName("QtaMin") .WithVisibility(false, true) .WithHeaderText("Qta Min") .WithValueExpression(i => i.QtaMin.ToString()); cols.Add("QtaBatch").WithColumnName("QtaBatch") .WithVisibility(false, true) .WithHeaderText("Lotto") .WithValueExpression(i => i.QtaBatch.ToString()); cols.Add("QtaCurr").WithColumnName("QtaCurr") .WithHeaderText("Stock") .WithCellCssClassExpression(p => p.QtaCurr >= p.QtaMin ? "success" : "danger") .WithValueExpression(i => i.QtaCurr.ToString()); cols.Add("CurrValue").WithColumnName("CurrValue") .WithHeaderText("€/pz") .WithValueExpression(i => i.CurrValue.ToString("N2")); cols.Add("TotVal").WithColumnName("TotVal") .WithHeaderText("Valore") .WithValueExpression(i => Convert.ToDecimal(i.CurrValue * i.QtaCurr).ToString("N2")); cols.Add("EditLink").WithColumnName("EditLink") .WithSorting(false) .WithVisibility(true, false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Edit", "Items", new { id = i.ID, ItemID = i.ID })) .WithValueTemplate("Edit"); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string SearchVal = options.GetAdditionalQueryOptionString("search"); if (String.IsNullOrEmpty(SearchVal)) SearchVal = ""; return new QueryResult() { Items = ItemsController.SelectPage(SearchVal, options.SortColumnName.ToLower(), options.SortDirection.ToString().ToLower(), (int)options.PageIndex, (int)options.ItemsPerPage).ToList(), TotalRecords = ItemsController.SelectCount(SearchVal) }; }) ); MVCGridDefinitionTable.Add("StockGrid", new MVCGridBuilder(gridDefaults, colDefaults) // aggiungo valori di default... .WithSorting(sorting: true, defaultSortColumn: "LocationID") //, defaultSortDirection: SortDirection.Dsc .WithAdditionalQueryOptionNames("ID") //.WithRowCssClassExpression(p => p.QtaCurr == 0 ? "warning" : "") // commentata x ora, poi potrebbe servire... .WithQueryStringPrefix("Item") .WithPaging(false) .AddColumns(cols => { cols.Add("LocationID").WithColumnName("LocationID") .WithVisibility(true, false) .WithHeaderText("Posizione") .WithValueExpression(i => i.Location.Descr); cols.Add("QtyConf").WithColumnName("QtyConf") .WithVisibility(true, false) .WithHeaderText("Giacenza") .WithValueExpression(i => i.QtyConf.ToString()); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string sItemID = options.GetAdditionalQueryOptionString("ID"); if (String.IsNullOrEmpty(sItemID)) sItemID = "0"; int ItemID = Convert.ToInt32(sItemID); return new QueryResult() { Items = ItemStocksController.Select(ItemID).ToList(), TotalRecords = ItemStocksController.SelectCount(ItemID) }; }) ); } } }