Files
StockMan/StockManMVC/App_Start/MVCGridConfig.cs
T

124 lines
6.1 KiB
C#

[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<Models.Item>(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 }))
.WithValueTemplate("<a href='{Value}' title='Vedi Dettagli'><i class='glyphicon glyphicon-search' aria-hidden='true'></i></a>");
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 }))
.WithValueTemplate("<a href='{Value}'>Edit</a>");
})
.WithRetrieveDataMethod((context) =>
{
var options = context.QueryOptions;
string SearchVal = options.GetAdditionalQueryOptionString("search");
if (String.IsNullOrEmpty(SearchVal)) SearchVal = "";
return new QueryResult<Models.Item>()
{
Items = ItemsController.SelectPage(SearchVal, options.SortColumnName.ToLower(), options.SortDirection.ToString().ToLower(), (int)options.PageIndex, (int)options.ItemsPerPage).ToList(),
TotalRecords = ItemsController.SelectCount(SearchVal)
};
})
);
}
}
}