This is a migrated thread and some comments may be shown as answers.

grid layout

4 Answers 183 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Stefano
Top achievements
Rank 1
Stefano asked on 11 Feb 2013, 07:59 AM
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

4 Answers, 1 is accepted

Sort by
0
Vladimir Iliev
Telerik team
answered on 12 Feb 2013, 04:33 PM
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!
0
Stefano
Top achievements
Rank 1
answered on 13 Feb 2013, 07:34 AM
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.
0
Vladimir Iliev
Telerik team
answered on 15 Feb 2013, 06:05 AM
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!
0
Stefano
Top achievements
Rank 1
answered on 15 Feb 2013, 08:28 AM
Ok, thank you, so I will make a custom template
Tags
Grid
Asked by
Stefano
Top achievements
Rank 1
Answers by
Vladimir Iliev
Telerik team
Stefano
Top achievements
Rank 1
Share this question
or