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 ?