or
testHierarchy = getData();
$("#TestHierarchy").kendoTreeView({ dataSource: new kendo.data.HierarchicalDataSource({ data: testHierarchy }) });$("#includeInActive").live('click', function () { testHierarchy = []; alert(testHierarchy.length); $("#testHierarchy").removeClass('k-treeview'); $("#testHierarchy").empty(); getHierarchy(); }
<%@ 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>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 */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 */@(Html.Kendo().Grid<MyProject.ViewModels.Calculation.WorkGridItem>() .Name("grid") .BindTo(Model.WorkGrid.WorkGridItems) .Columns(c => { c.Bound(i => i.Identifier).Title("Id"); c.Bound(i => i.Name).Title("Namn"); c.Bound(i => i.City).Title("Stad"); c.Bound(i => i.Status).Title("Status"); c.Bound(i => i.StartDate).Title("Start"); c.Bound(i => i.EndDate).Title("Slut"); c.Bound(i => i.Created).Title("Skapad"); c.Bound(i => i.SigningDate).Title("Signatur"); }) .ClientDetailTemplateId("expandedRowTemplate") .Events(l => l.DetailInit("OnLoadDetail")) .Events(ev => ev.DetailExpand("detailExpand")) .Pageable(x => { x.PageSizes(new int[] { 50, 100, 200 }); x.Refresh(true); }) .Sortable(x => x.Enabled(true)) .DataSource(ds => ds. Ajax() .ServerOperation(true) .Read(read => read .Action("ReadGridItems", "Calculations", new { selectedTab = Model.Tabs.SelectedTab().Value, gridType = Model.PageHeaderSearch.SelectedSearchType, searchString = Model.PageHeaderSearch.SearchWord, }) .Type(HttpVerbs.Post) ) .PageSize(50)<div> @(Html.Kendo().Grid(Model) .Name("Grid") .Columns(columns => { columns.Bound(p => p.Id); columns.Bound(p => p.UserName); columns.Bound(p => p.FullName); columns.Bound(p => p.Organization).ClientTemplate( "# if (data.Organization != null) { #" + "#= data.Organization.Name #" + "# } else { #" + "#: '<N/A>' #" + "# } #" ) .Filterable(filterable => filterable.UI("orgFilterKendo")); columns.Bound(p => p.Email); columns.Bound(p => p.PhoneNumber); columns.Bound(p => p.PostName); }) .Filterable(filterable => filterable .Extra(true) ) .EnableCustomBinding(true) .DataSource(dataSource => dataSource .Ajax() .Model(model => { model.Id(p => p.Id); model.Field(p => p.Id).Editable(false); }) .Read("GetGridData", "User") ) )</div><script id="orgFilterKendo" type="text/x-kendo-template"> @Html.Kendo().DropDownListFor( @(Html.Kendo().DropDownList() .Name("Organization") .DataValueField("Id") .DataTextField("Name") .OptionLabel("Не задано") .BindTo((System.Collections.IEnumerable)ViewData["UserOrganizations"]) .ToClientTemplate())</script><script type="text/javascript"> function orgFilterKendo(element) { element.kendoDropDownList({ dataTextField: "Name", dataValueField: "Id", optionLabel: "--Select Value--", dataSource: { transport: { read: "@Url.Action("FilterMenu_Organizations")" } } }); } </script>.DataSource(dataSource => dataSource .Ajax() .Model(model => { model.Id(g => g.id); model.Field(g => g.id).Editable(false); model.Field(g => g.user_id); model.Field(g => g.group_id); }) .Create(c => c.Url("http://localhost:808/api/UserGroup").Type(HttpVerbs.Post)) .Update(update => update.Url("http://localhost:808/api/UserGroup").Type(HttpVerbs.Put)) .Destroy(destroy => destroy.Url("http://localhost:808/api/UserGroup").Type(HttpVerbs.Delete)) )OPTIONS http://localhost:808/api/UserGroup 405 (Method Not Allowed) jquery.min.js:2OPTIONS http://localhost:808/api/UserGroup 405 (Method Not Allowed) jquery.min.js:2DELETE http://localhost:808/api/UserGroup 404 (Not Found) UserGroup:1XHR finished loading: "http://localhost:808/api/UserGroup".columns.Command(commands =>{ commands.Edit(); @<text> @if (!item.IsStartPage) { commands.Destroy(); } </text>;})columns.Command(commands =>{ commands.Edit(); commands.Destroy(!item.IsStartPage);})