grid layout

5 posts, 0 answers
  1. Stefano
    Stefano avatar
    13 posts
    Member since:
    Dec 2012

    Posted 11 Feb 2013 Link to this post

    Hi,
    I need to customize the layout for a grid. Can you explain how can I do this, please?

    THIS IS MY CODE

    AnagraficaRistoratoriEspositori.aspx

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewsMasterPage.Master" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="phdContent" runat="server">
    <h2>Gestione Anagrafica Ristoratori/Organizzatori</h2>
    <%: Html.Kendo().Grid<Sopra.Fmspa.BusinessLayer.ViewModels.AnagraficaViewModel>()
    .Name("Grid")
    .HtmlAttributes(new { Style = "height:700px; width:1200px;" })
    .Columns(columns =>
    {
    columns.Bound(e => e.Id).Hidden();
    columns.Bound(e => e.RagioneSociale)
    .Filterable(filterable => filterable.UI("RagioneSocialeFilter"))
    .Width(300);
    columns.Bound(e => e.TipologiaAnagrafica)
    .Filterable(filterable => filterable.UI("TipologiaAnagraficaFilter"))
    .Width(300)
    .ClientTemplate("# try {# #=TipologiaAnagrafica.Descrizione# #} catch (e) {}#");
    columns.Bound(e => e.Padiglione)
    .Filterable(filterable => filterable.UI("PadiglioneFilter"))
    .Width(300)
    .ClientTemplate("# try {# #=Padiglione.Descrizione# #} catch (e) {}#");
    columns.Bound(p => p.Descrizione).Width(300);
    columns.Bound(e => e.FlagEstero)
    .Filterable(filterable => filterable.UI("FlagEsteroFilter"))
    .Width(150);
    // Batch editing
    //columns.Command(command => command.Destroy()).Width(100);
    // InLine editing or PopUp editing
    //columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
    columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
    })
    .Resizable(resizing => resizing.Columns(true))
    .Reorderable(reordering => reordering.Columns(true))
    .Filterable(filterable => filterable
    .Extra(false)
    .Operators(operators => operators
    .ForString(str => str.Clear()
    .StartsWith("Inizia per")
    .IsEqualTo("Equivale a")
    .IsNotEqualTo("Differisce da")
    ))
    )
    .Groupable()
    // Batch editing
    //.ToolBar(toolbar =>
    // {
    // toolbar.Create();
    // toolbar.Save();
    // })
    // InLine editing
    //.ToolBar(toolbar => toolbar.Create())
    .ToolBar(toolbar => toolbar.Create())
    // Batch editing
    //.Editable(editable => editable.Mode(GridEditMode.InCell))
    // InLine editing
    //.Editable(editable => editable.Mode(GridEditMode.InLine))
    // PopUp editing
    //.Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Pageable()
    .Sortable()
    .Scrollable()
    .ColumnMenu()
    .DataSource(dataSource => dataSource
    .Ajax()
    .ServerOperation(true)
    .PageSize(100)
    .Batch(true)
    .Events(events => events.Error("error_handler"))
    .Model(model =>
    {
    model.Id(p => p.Id);
    model.Field(p => p.FlagEstero).DefaultValue(null);
    })
    .Read("Anagrafiche_Read", "Anagrafica")
    .Update("Anagrafiche_Update", "Anagrafica")
    .Create("Anagrafiche_Create", "Anagrafica")
    .Destroy("Anagrafiche_Delete", "Anagrafica")
    )
    %>
    <script type="text/javascript">
    function error_handler(e) {
    if (e.errors) {
    var message = "Errors:\n";
    $.each(e.errors, function (key, value) {
    if ('errors' in value) {
    $.each(value.errors, function () {
    message += this + "\n";
    });
    }
    });
    var grid = $("#Grid").data("kendoGrid");
    grid.one("dataBinding", function (e) {
    e.preventDefault(); // cancel grid rebind if error occurs
    });
    alert(message);
    }
    }
    function RagioneSocialeFilter(element) {
    element.kendoDropDownList({
    dataSource: {
    transport: {
    read: "<%= Url.Action("Anagrafiche_RagioneSocialeFilter") %>"
    }
    },
    optionLabel: "--Scegliere ragione sociale--"
    });
    }
    function TipologiaAnagraficaFilter(element) {
    element.kendoDropDownList({
    dataSource: {
    transport: {
    read: "<%= Url.Action("Anagrafiche_TipologiaAnagraficaFilter") %>"
    }
    },
    optionLabel: "--Scegliere tipologia anagrafica--"
    });
    }
    function PadiglioneFilter(element) {
    element.kendoDropDownList({
    dataSource: {
    transport: {
    read: "<%= Url.Action("Anagrafiche_PadiglioneFilter") %>"
    }
    },
    optionLabel: "--Scegliere padiglione--"
    });
    }
    function FlagEsteroFilter(element) {
    element.kendoDropDownList({
    dataSource: {
    transport: {
    read: "<%= Url.Action("Anagrafiche_FlagEsteroFilter") %>"
    }
    },
    optionLabel: "--Espositore Estero?--"
    });
    }
    </script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="phdHeadContent" runat="server">
    </asp:Content>

    AnagraficaRepository.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Data;
    using System.Web;
    using System.Text;
    using System.Threading.Tasks;
    using Sopra.Fmspa.BusinessLayer.Models;
    using Sopra.Fmspa.BusinessLayer.ViewModels;
    using AutoMapper.Configuration;
    using AutoMapper.Mappers;
    /* SINTASSI AUTOMAPPER
    AutoMapper.Mapper.CreateMap<Sorgente,Destinatario>();
    Destinatario dest = AutoMapper.Mapper.Map<Sorgente,Destinatario>(sorg); */
    namespace Sopra.Fmspa.BusinessLayer.DAL
    {
    public class AnagraficaRepository : IAnagraficaRepository, IDisposable
    {
    private ODLModelContainer context;
    /* TO DO:
    * - vedere AnagraficaViewModel.cs
    * - sistemare il codice in modo tale che questo mapper funzioni senza l'opzione ignore per il campo manifestazione
    */
    //public AnagraficaRepository(ODLModelContainer context)
    //{
    // this.context = context;
    // AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
    // AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
    // AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
    // AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
    // AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
    // AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
    // AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
    // .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    // .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
    // .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    // AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
    // .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    // .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
    // .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    //}
    public AnagraficaRepository(ODLModelContainer context)
    {
    this.context = context;
    AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
    AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
    //AutoMapper.Mapper.CreateMap<Manifestazione, ManifestazioneViewModel>();
    AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
    AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
    //AutoMapper.Mapper.CreateMap<ManifestazioneViewModel, Manifestazione>();
    AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
    .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione));
    //.ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
    .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.Ignore())
    .ForMember(dest => dest.Padiglione, opt => opt.Ignore())
    .ForMember(dest => dest.Manifestazione, opt => opt.Ignore());
    }
    //public AnagraficaRepository(ODLModelContainer context)
    //{
    // this.context = context;
    //}
    // ---------------------------------------------------------------------------------------------- //
    public IEnumerable<Anagrafica> GetAnagrafica()
    {
    return context.odl_Anagrafica.ToList();
    }
    public IList<AnagraficaViewModel> GetAnagraficaList()
    {
    List<Anagrafica> anag = context.odl_Anagrafica.ToList();
    List<AnagraficaViewModel> anagview = AutoMapper.Mapper.Map<List<Anagrafica>,List<AnagraficaViewModel>>(anag);
    return anagview;
    }
    // ---------------------------------------------------------------------------------------------- //
    //public static IList<AnagraficaViewModel> All()
    //{
    // IList<AnagraficaViewModel> result = (IList<AnagraficaViewModel>)HttpContext.Current.Session["Anagrafica"];
    // if (result == null)
    // {
    // HttpContext.Current.Session["Anagrafica"] = result =
    // (from anag in new ODLModelContainer().odl_Anagrafica
    // select new AnagraficaViewModel
    // {
    // Id = anag.Id,
    // AccountNumber = anag.AccountNumber,
    // RagioneSociale = anag.RagioneSociale,
    // TipologiaAnagraficaId = anag.TipologiaAnagraficaId,
    // Descrizione = anag.Descrizione,
    // ManifestazioneId = anag.ManifestazioneId,
    // PadiglioneId = anag.PadiglioneId,
    // Stand = anag.Stand,
    // FlagSolvenza = anag.FlagSolvenza,
    // FlagEstero = anag.FlagEstero,
    // TipologiaAnagrafica = anag.TipologiaAnagrafica,
    // Padiglione = anag.Padiglione
    // }).ToList();
    // }
    // return result;
    //}
    // ---------------------------------------------------------------------------------------------- //
    //public static AnagraficaViewModel One(Func<AnagraficaViewModel, bool> predicate)
    //{
    // return All().Where(predicate).FirstOrDefault();
    //}
    // ---------------------------------------------------------------------------------------------- //
    //public void Insert(AnagraficaViewModel anagview)
    //{
    // if (anagview != null)
    // {
    // Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel, Anagrafica>(anagview);
    // context.odl_Anagrafica.Add(anag);
    // }
    //}
    public void Insert(AnagraficaViewModel anagview)
    {
    if (anagview != null)
    {
    Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel, Anagrafica>(anagview);
    // valore forzato
    anag.ManifestazioneId = anagview.ManifestazioneId;
    context.odl_Anagrafica.Add(anag);
    }
    }
    //public void Insert(AnagraficaViewModel anagview)
    //{
    // Anagrafica anag = new Anagrafica();
    // anag.Id = anagview.Id;
    // anag.AccountNumber = anagview.AccountNumber;
    // anag.RagioneSociale = anagview.RagioneSociale;
    // anag.TipologiaAnagraficaId = anagview.TipologiaAnagraficaId;
    // anag.Descrizione = anagview.Descrizione;
    // anag.ManifestazioneId = anagview.ManifestazioneId;
    // anag.PadiglioneId = anagview.PadiglioneId;
    // anag.Stand = anagview.Stand;
    // anag.FlagSolvenza = anagview.FlagSolvenza;
    // anag.FlagEstero = anagview.FlagEstero;
    // anag.TipologiaAnagrafica = anagview.TipologiaAnagrafica;
    // anag.Padiglione = anagview.Padiglione;
    // context.odl_Anagrafica.Add(anag);
    //}
    //public static void Insert(AnagraficaViewModel anag)
    //{
    // anag.Id = All().OrderByDescending(p => p.Id).First().Id + 1;
    // All().Insert(0, anag);
    //}
    // ---------------------------------------------------------------------------------------------- //
    public void Update(AnagraficaViewModel anagview)
    {
    if (anagview != null)
    {
    Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel,Anagrafica>(anagview);
    context.odl_Anagrafica.Attach(anag);
    context.Entry(anag).State = EntityState.Modified;
    }
    }
    //public void Update(AnagraficaViewModel anagview)
    //{
    // Anagrafica anag = context.odl_Anagrafica.Find(anagview.Id);
    // if (anag != null)
    // {
    // anag.Id = anagview.Id;
    // anag.AccountNumber = anagview.AccountNumber;
    // anag.RagioneSociale = anagview.RagioneSociale;
    // anag.TipologiaAnagraficaId = anagview.TipologiaAnagraficaId;
    // anag.Descrizione = anagview.Descrizione;
    // anag.ManifestazioneId = anagview.ManifestazioneId;
    // anag.PadiglioneId = anagview.PadiglioneId;
    // anag.Stand = anagview.Stand;
    // anag.FlagSolvenza = anagview.FlagSolvenza;
    // anag.FlagEstero = anagview.FlagEstero;
    // anag.TipologiaAnagrafica = anagview.TipologiaAnagrafica;
    // anag.Padiglione = anagview.Padiglione;
    // context.Entry(anag).State = EntityState.Modified;
    // }
    //}
    //public static void Update(AnagraficaViewModel anag)
    //{
    // AnagraficaViewModel target = One(p => p.Id == anag.Id);
    // if (target != null)
    // {
    // target.AccountNumber = anag.AccountNumber;
    // target.RagioneSociale = anag.RagioneSociale;
    // target.TipologiaAnagraficaId = anag.TipologiaAnagraficaId;
    // target.Descrizione = anag.Descrizione;
    // target.ManifestazioneId = anag.ManifestazioneId;
    // target.PadiglioneId = anag.PadiglioneId;
    // target.Stand = anag.Stand;
    // target.FlagSolvenza = anag.FlagSolvenza;
    // target.FlagEstero = anag.FlagEstero;
    // target.TipologiaAnagrafica = anag.TipologiaAnagrafica;
    // target.Padiglione = anag.Padiglione;
    // }
    //}
    // ---------------------------------------------------------------------------------------------- //
    public void Delete(AnagraficaViewModel anagview)
    {
    Anagrafica anag = context.odl_Anagrafica.Find(anagview.Id);
    if (anag != null)
    {
    context.odl_Anagrafica.Remove(anag);
    }
    }
    //public static void Delete(AnagraficaViewModel anag)
    //{
    // AnagraficaViewModel target = One(p => p.Id == anag.Id);
    // if (target != null)
    // {
    // All().Remove(target);
    // }
    //}
    // ---------------------------------------------------------------------------------------------- //
    public void Save()
    {
    context.SaveChanges();
    }
    private bool disposed = false;
    protected virtual void Dispose(bool disposing)
    {
    if (!this.disposed)
    {
    if (disposing)
    {
    // dispose della classe context <--- dispose della classe ODLModelContainer
    context.Dispose();
    }
    }
    this.disposed = true;
    }
    public void Dispose()
    {
    // dispose della classe IDisposable ---> GC ---> liberazione della memoria
    Dispose(true);
    GC.SuppressFinalize(this);
    }
    }
    }
    /* TO DO:
    * - aggiungere la possibilità di scegliere, per ogni record della grid, una manifestazione
    * - collegamento tra la pagina manifestazioni e questa pagina (anagrafica in bianco)
    * - migliorare l'interfaccia grafica, in particolare l'aspetto della grid
    * - controllo ad inserimento per la ragione sociale: stabilire se una voce è già stata inserita nel database
    */


    AnagraficaController.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Mvc;
    using Kendo.Mvc.Extensions;
    using Kendo.Mvc.UI;
    using Sopra.Fmspa.BusinessLayer.Models;
    using Sopra.Fmspa.BusinessLayer.DAL;
    using Sopra.Fmspa.BusinessLayer.ViewModels;
    using System.Data.Entity.Validation;
    using System.Diagnostics;
    using AutoMapper.Configuration;
    using AutoMapper.Mappers;
    /* SINTASSI AUTOMAPPER
    AutoMapper.Mapper.CreateMap<Sorgente,Destinatario>();
    Destinatario dest = AutoMapper.Mapper.Map<Sorgente,Destinatario>(sorg); */
    namespace Sopra.Fmspa.BusinessLayer.Controllers
    {
    public class AnagraficaController : Controller
    {
    ODLModelContainer db = new ODLModelContainer();
    private IAnagraficaRepository anagraficaRepository;
    //public AnagraficaController()
    //{
    // this.anagraficaRepository = new AnagraficaRepository(new ODLModelContainer());
    // AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
    // AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
    // AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
    // AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
    // AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
    // AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
    // AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
    // .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    // .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
    // .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    // AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
    // .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    // .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
    // .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    // //AutoMapper.Mapper.CreateMap<AnagraficaViewModel,AnagraficaViewModel>();
    //}
    public AnagraficaController()
    {
    this.anagraficaRepository = new AnagraficaRepository(new ODLModelContainer());
    AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
    AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
    //AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
    AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
    AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
    //AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
    AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
    .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
    .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione));
    //.ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
    AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
    .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.Ignore())
    .ForMember(dest => dest.Padiglione, opt => opt.Ignore())
    .ForMember(dest => dest.Manifestazione, opt => opt.Ignore());
    //AutoMapper.Mapper.CreateMap<AnagraficaViewModel,AnagraficaViewModel>();
    }
    public AnagraficaController(IAnagraficaRepository anagraficaRepository)
    {
    this.anagraficaRepository = anagraficaRepository;
    }
    public ActionResult Remote_Data()
    {
    return View("AjaxBinding");
    }
    // ---------------------------------------------------------------------------------------------- //
    public ActionResult AnagraficaRistoratoriEspositori()
    {
    IList<AnagraficaViewModel> anagview = anagraficaRepository.GetAnagraficaList();
    PopulateTipologiaAnagrafica();
    PopulatePadiglione();
    return View(anagview);
    }
    //public ActionResult AnagraficaRistoratoriEspositori()
    //{
    // IEnumerable<Anagrafica> anag = anagraficaRepository.GetAnagrafica();
    // PopulateTipologiaAnagrafica();
    // PopulatePadiglione();
    // return View(anag);
    //}
    // ---------------------------------------------------------------------------------------------- //
    public ActionResult Anagrafiche_Read([DataSourceRequest] DataSourceRequest request)
    {
    return Json(anagraficaRepository.GetAnagraficaList().ToDataSourceResult(request));
    }
    //public ActionResult Anagrafiche_Read([DataSourceRequest] DataSourceRequest request)
    //{
    // return Json(AnagraficaRepository.All().ToDataSourceResult(request));
    //}
    // ---------------------------------------------------------------------------------------------- //
    public ActionResult Anagrafiche_RagioneSocialeFilter()
    {
    return Json(anagraficaRepository.GetAnagrafica().Select(e => e.RagioneSociale).Distinct(), JsonRequestBehavior.AllowGet);
    }
    public ActionResult Anagrafiche_TipologiaAnagraficaFilter()
    {
    return Json(anagraficaRepository.GetAnagrafica().Select(e => e.TipologiaAnagrafica).Distinct(), JsonRequestBehavior.AllowGet);
    }
    public ActionResult Anagrafiche_PadiglioneFilter()
    {
    return Json(anagraficaRepository.GetAnagrafica().Select(e => e.Padiglione).Distinct(), JsonRequestBehavior.AllowGet);
    }
    public ActionResult Anagrafiche_FlagEsteroFilter()
    {
    return Json(anagraficaRepository.GetAnagrafica().Select(e => e.FlagEstero).Distinct(), JsonRequestBehavior.AllowGet);
    }
    // ---------------------------------------------------------------------------------------------- //
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // if (anagrafiche != null && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // anagraficaRepository.Insert(anag);
    // }
    // anagraficaRepository.Save();
    // }
    // return Json(ModelState.ToDataSourceResult());
    //}
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    {
    if (anagrafiche != null && ModelState.IsValid)
    {
    foreach (var anag in anagrafiche)
    {
    anag.Id = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().Id + 1;
    anag.TipologiaAnagraficaId = anag.TipologiaAnagrafica.Id;
    anag.PadiglioneId = anag.Padiglione.Id;
    // valore forzato
    if (anag.ManifestazioneId == null)
    {
    //anag.Manifestazione.Id = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().Manifestazione.Id;
    anag.ManifestazioneId = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().ManifestazioneId;
    }
    //anag.ManifestazioneId = anag.Manifestazione.Id;
    anagraficaRepository.Insert(anag);
    }
    anagraficaRepository.Save();
    }
    return Json(ModelState.ToDataSourceResult());
    }
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // var results = new List<AnagraficaViewModel>();
    // if (anagrafiche != null && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // anagraficaRepository.Insert(anag);
    // results.Add(anag);
    // }
    // anagraficaRepository.Save();
    // }
    // return Json(results.ToDataSourceResult(request, ModelState));
    //}
    // ---------------------------------------------------------------------------------------------- //
    private void PopulateTipologiaAnagrafica()
    {
    ViewData["TipologiaAnagrafiche"] = AutoMapper.Mapper.Map<IList<TipologiaAnagrafica>,IList<TipologiaAnagraficaViewModel>>(db.odl_TipologiaAnagrafica.ToList());
    }
    private void PopulatePadiglione()
    {
    ViewData["Padiglioni"] = AutoMapper.Mapper.Map<IList<Padiglione>,IList<PadiglioneViewModel>>(db.odl_Padiglione.ToList());
    }
    // ---------------------------------------------------------------------------------------------- //
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // if (anagrafiche != null && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // anag.TipologiaAnagrafica.Id = anag.TipologiaAnagraficaId;
    // anag.Padiglione.Id = anag.PadiglioneId;
    // anag.Manifestazione.Id = anag.ManifestazioneId;
    // anagraficaRepository.Update(anag);
    // }
    // anagraficaRepository.Save();
    // }
    // return Json(ModelState.ToDataSourceResult());
    //}
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    {
    if (anagrafiche != null && ModelState.IsValid)
    {
    foreach (var anag in anagrafiche)
    {
    anag.TipologiaAnagrafica.Id = anag.TipologiaAnagraficaId;
    anag.Padiglione.Id = anag.PadiglioneId;
    //anag.Manifestazione.Id = anag.ManifestazioneId;
    anagraficaRepository.Update(anag);
    }
    anagraficaRepository.Save();
    }
    return Json(ModelState.ToDataSourceResult());
    }
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // if (anagrafiche != null && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // var target = AnagraficaRepository.One(p => p.Id == anag.Id);
    // if (target != null)
    // {
    // target = AutoMapper.Mapper.Map<AnagraficaViewModel, AnagraficaViewModel>(anag);
    // anagraficaRepository.Update(target);
    // }
    // }
    // anagraficaRepository.Save();
    // }
    // return Json(ModelState.ToDataSourceResult());
    //}
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // if (anagrafiche != null && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // var target = AnagraficaRepository.One(p => p.Id == anag.Id);
    // if (target != null)
    // {
    // target.AccountNumber = anag.AccountNumber;
    // target.RagioneSociale = anag.RagioneSociale;
    // target.TipologiaAnagraficaId = anag.TipologiaAnagraficaId;
    // target.Descrizione = anag.Descrizione;
    // target.ManifestazioneId = anag.ManifestazioneId;
    // target.PadiglioneId = anag.PadiglioneId;
    // target.Stand = anag.Stand;
    // target.FlagSolvenza = anag.FlagSolvenza;
    // target.FlagEstero = anag.FlagEstero;
    // target.TipologiaAnagrafica = anag.TipologiaAnagrafica;
    // target.Padiglione = anag.Padiglione;
    // anagraficaRepository.Update(target);
    // }
    // }
    // anagraficaRepository.Save();
    // }
    // return Json(ModelState.ToDataSourceResult());
    //}
    // ---------------------------------------------------------------------------------------------- //
    public ActionResult Anagrafiche_Delete([Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    {
    if (anagrafiche.Any())
    {
    Anagrafiche_Destroy(anagrafiche);
    }
    else
    {
    return HttpNotFound();
    }
    return Json(ModelState.ToDataSourceResult());
    }
    [HttpPost, ActionName("Anagrafiche_Delete")]
    public void Anagrafiche_Destroy([Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    {
    if (ModelState.IsValid)
    {
    foreach (var anag in anagrafiche)
    {
    anagraficaRepository.Delete(anag);
    }
    }
    anagraficaRepository.Save();
    }
    //[AcceptVerbs(HttpVerbs.Post)]
    //public ActionResult Anagrafiche_Destroy([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
    //{
    // if (anagrafiche.Any() && ModelState.IsValid)
    // {
    // foreach (var anag in anagrafiche)
    // {
    // anagraficaRepository.Delete(anag);
    // }
    // }
    // anagraficaRepository.Save();
    // return Json(ModelState.ToDataSourceResult());
    //}
    // ---------------------------------------------------------------------------------------------- //
    }
    }
    /* TO DO:
    * - aggiungere la possibilità di scegliere, per ogni record della grid, una manifestazione
    * - collegamento tra la pagina manifestazioni e questa pagina (anagrafica in bianco)
    * - migliorare l'interfaccia grafica, in particolare l'aspetto della grid
    * - controllo ad inserimento per la ragione sociale: stabilire se una voce è già stata inserita nel database
  2. Vladimir Iliev
    Admin
    Vladimir Iliev avatar
    2194 posts

    Posted 12 Feb 2013 Link to this post

    Hi Alessandro,

     
    From the provided information it's not clear for us what exactly you are trying to customize in the layout of the Grid - could you please provide more detailed information about it?

    Kind Regards,
    Vladimir Iliev
    the Telerik team
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
  3. Stefano
    Stefano avatar
    13 posts
    Member since:
    Dec 2012

    Posted 13 Feb 2013 Link to this post

    I need to customize the table format in general (for example, as one can do with Microsoft Excel), the layout of the table's cells, the layout of the text contained in the table's cells, etc..
    Please can you give me an overview of all possible commands for doing this? Thank you very much.
  4. Vladimir Iliev
    Admin
    Vladimir Iliev avatar
    2194 posts

    Posted 15 Feb 2013 Link to this post

    Hi Alessandro,

     
    Basically you can use the ClientTemplate and Kendo template syntax to render the customized cell content - please check the example below:

    columns.Bound(p => p.OrderDetailsUrl).ClientTemplate("<a href='#=OrderDetailsUrl#' class='orderLink'>#=OrderDetailsUrl#<a/>");

     Kind regards,
    Vladimir Iliev
    the Telerik team
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
  5. Stefano
    Stefano avatar
    13 posts
    Member since:
    Dec 2012

    Posted 15 Feb 2013 Link to this post

    Ok, thank you, so I will make a custom template
Back to Top