124 lines
6.1 KiB
C#
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)
|
|
};
|
|
|
|
})
|
|
);
|
|
|
|
}
|
|
}
|
|
} |