Hello ,
I have a kendoGrid in form with different clientTemplate like this :
@using (Ajax.BeginForm("edition","activites",null,new { id = id + "formSaisieHeures", width = "100%" })) { @(Html.Kendo().Grid<Integraal.Models.Activite>() .Name(id+"GrilleSaisieHeures") .Columns(columns => { columns.Bound(p => p.rowId) .ClientTemplate("#= rowId #" + "<input type='hidden' name='Activites[#= index(data)#].rowId' value='#= rowId #' />") .Hidden(); columns.Bound(p => p.date) .ClientTemplate("#= kendo.toString(date,'d') #" + "<input type='hidden' name='Activites[#= index(data)#].date' value='#= kendo.toString(date,'dd/MM/yyyy') #' />") .Width(100); columns.Bound(p => p.client.code) .ClientTemplate("#= client.code #" + "<input type='hidden' name='Activites[#= index(data)#].client.code' value='#= client.code #' />") .Width(100); columns.Bound(p => p.client.raisonSociale) .ClientTemplate("#= client.raisonSociale #" + "<input type='hidden' name='Activites[#= index(data)#].client.raisonSociale' value='#= client.raisonSociale #' />") .Width(150); columns.Bound(p => p.affaire.code) .ClientTemplate("#= affaire.code #" + "<input type='hidden' name='Activites[#= index(data)#].affaire.code' value='#= affaire.code #' />") .Width(100); columns.Bound(p => p.affaire.mnemonique) .ClientTemplate("#= affaire.mnemonique #" + "<input type='hidden' name='Activites[#= index(data)#].affaire.mnemonique' value='#= affaire.mnemonique #' />") .Width(150); columns.Bound(p => p.heures) //.ClientTemplate(Html.Kendo().NumericTextBox<Decimal>() // .Name("Activites[#=index(data)#].heures") // .HtmlAttributes(new { type = "hidden", value = "#=heures#" }) // .Format("{n2}") // .Decimals(2) // .Min(0) // .ToClientTemplate().ToHtmlString() // ) .ClientTemplate("#= heures #" + "<input type='hidden' name='Activites[#= index(data)#].heures' value='#= heures #' data-format='n2' data-decimals='2' data-step='0.01' data-role='numerictextbox' />") //.ClientGroupFooterTemplate("Heures : #=sum#") .Width(100); columns.Bound(p => p.deplacement) .ClientTemplate("#= deplacement #" + "<input type='hidden' name='Activites[#= index(data)#].deplacement' value='#= deplacement #' />") .Width(100); columns.Bound(p => p.zone) .ClientTemplate("#= zone.libelle #" + "<input type='hidden' name='Activites[#= index(data)#].zone.code' value='#= zone.code #' />") .Width(150); columns.Command(command => command.Destroy()).Width(30); }) .Events(events => events.DataBound("onDataBoundSaisieHeures")) .ToolBar(toolbar => { toolbar.Create(); }) .Resizable(resize => resize.Columns(true)) .Editable(editable => editable.Mode(GridEditMode.InCell)) .Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple)) .Sortable() .Scrollable() .Navigatable() // Permet de changer de cellule en édition par exemple ! ;-) .Groupable() .DataSource(dataSource => dataSource .Ajax() .Aggregates(aggregates => { aggregates.Add(p => p.heures).Sum(); }) .Batch(true) .ServerOperation(false) .Model(model => { model.Id(p => p.rowId); // On indique des valeurs par défaut pour le bind des objets sinon erreur. model.Field(p => p.client).DefaultValue( new Integraal.Models.ActiviteClientViewModel { code = "", raisonSociale = "" } ); model.Field(p => p.affaire).DefaultValue( new Integraal.Models.Affaire { code = "", mnemonique = "" } ); model.Field(p => p.zone).DefaultValue( new Integraal.Models.Zone { code = "", libelle = "" } ); }) .Read(read => read.Action("editing_read", "activites").Data("additionalDataRead")) ))my problems is on the columns "heures", i need to send a Decimal value to the controller.
my models "Activite" have correct data type for the columns "heures"
[DisplayName("Heures")]
[UIHint("Decimal")]
[DisplayFormat(DataFormatString = "{n2}")]
public Decimal heures { get; set; }
my input value is good in the html
(exemple : <input type="hidden" data-role="numerictextbox" data-step="0.01" data-decimals="2" data-format="n2" value="6.66" name="Activites[1].heures">)
"<input type='hidden' name='Activites[#= index(data)#].heures' value='#= heures #' data-format='n2' data-decimals='2' data-step='0.01' data-role='numerictextbox' />"
But in my controller the activite.heures is always at 0 -_-'
all others values are set correctly except heures
[HttpPost]
public PartialViewResult Edition(Activite activite)
{
List<Activite> edited = new List<Activite>();
List<Activite> deleted = new List<Activite>();
...
someone have any idea ?